#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 ...