鍊錶的基本操作

2021-09-29 19:18:13 字數 1544 閱讀 6087

鍊錶的一些基本操作(想到了就寫,慢慢更新)

#include #include#includeusing namespace std;

/*單鏈表反轉

鍊錶中環的檢測

兩個有序鍊錶的合併

刪除鍊錶倒數第n個節點

求鍊錶的中間結點

*/typedef struct node

listnode;

//鍊錶初始化

listnode* listinit()

//鍊錶插入

void listinsert(listnode* head,int n )

//鍊錶列印

void listprint(listnode* head)

}//單鏈表反轉

void listinverse(listnode* head)

}//建立鍊錶環

void listcreateloop(listnode*head,int arry,int arrysize)

}//檢測鍊錶環

bool listinspectloop(listnode* head)

return false;

}//兩個有序鍊錶合併

listnode* listmerge(listnode* head1,listnode* head2)

else

}while(p1!=null)

while(p2!=null)

return head;

}//刪除鍊錶倒數第n個節點

//修改了這裡,新增了只有乙個結點的鍊錶刪除倒數第乙個節點(刪除自己)的情況

listnode* removenthfromend(listnode* head, int n)

listnode * fast = head, *slow = head;

for(int i = 0; i < n; i++)

if(!fast)

while(fast -> next)

free(slow->next);

slow -> next = slow -> next -> next;

return head;

}//求鍊錶的中間結點

listnode* listmiddlenode(listnode*head)

else

return middle;

}return middle;

}int main()

// listprint(head);

// listinverse(head);

// cout<<"+++++++++"<0;--i)

//

// listprint(head);

// listdeletenode(head,1);

// cout<<"+++++++++"<0;--i)

listprint(head);

cout<<"--------"return 0;

}

鍊錶的基本操作

include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...

鍊錶的基本操作

鍊錶操作是最基本的 必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。1.單鏈表 結點形式 區分幾個概念 首節點 第乙個元素所在節點。頭指標 指向首節點的指標。頭結點 為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。基本操作 ...

鍊錶的基本操作。。。

include node.h 列印鍊錶 void print node head printf n 從尾部插入 void insert tail node head,const int d while t next null t next p p next null 從頭部插入 void inser...