鍊錶的一些基本操作(想到了就寫,慢慢更新)
#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...