鍊錶操作面試題

2021-08-09 05:46:07 字數 1207 閱讀 9661

#include

#include

#include

#define datetype int

typedef struct node node, *pnode;

void printlist(pnode head)//列印鍊錶

printf("null\n");

}void bubblesort(pnode *phead)// 使用冒泡對單鏈表進行排序

q = q->next;

}if (tag

==0)

return;

ptail = q;

p = p->next;

}}pnode mergelist(pnode phead1, pnode phead2)// 合併兩個已序鍊錶,合併之後新鍊錶依然有序

else

while (pl1&&pl2)

else

}if (!pl1)

ptail->next = pl2;

else ptail->next = pl1;

return pnewhead;

}pnode findlastknode(pnode phead, int k)// 查詢無頭單鏈表的倒數第k個結點

while (pright->next !=

null)

return pleft;

}pnode deletelastknode(pnode phead, int k)// 刪除無頭單鏈表的倒數第k個結點

else

if (pdelnode == phead)

else

return phead;

}// 判斷鍊錶是否帶環,如果帶環求環的長度,並給出入口點

pnode hascircle(pnode phead)//判斷鍊錶是否帶環

else

return pleft;

}return

null;

}int getcirclelen(pnode phead)//如果帶環,求環的長度

return counter;

}pnode getenternode(pnode phead, pnode pmeetnode)//給出帶環入口點

return q;

}void test()

int main(void)

鍊錶操作面試題

include using namespace std struct node int value node next node find node phead,int t 一 刪除鍊錶中某個節點 思路 先找到要刪除的節點位置 bool deletet node phead,int t else e...

鍊錶常用操作及面試題

鍊錶是一種比較基礎的資料結構,雖然在acm比賽中不常用,但是在面試中還是比較常問的,所以拿出來寫了一下,發現很多錯誤,由於操作中用到很多指標,所以不經常寫的話很容易寫錯。這裡寫了一下鍊錶的建立,比較基礎!然後是刪除鍊錶的元素,需要考慮刪除的是否為第乙個元素。然後是找鍊錶的倒數第k個元素,可以用兩個指...

鍊錶基本操作及面試題

標頭檔案 ifndef linked list h define linked list h include using namespace std include typedef int datatype struct node datatype data node prev node next ...