學了n年的C語言,你知道怎么用C實現一個動態的單鏈表嗎,一起mark一下吧,自我激勵ing。
首先是頭插法:
// // Created by yuyu on 2020/10/15. // #include "stdio.h" #include "stdlib.h" //頭插法實現動態單鏈表 typedef struct node{ int element; struct node *next; }node,*linklist; linklist insertFromHead(int num){ linklist head=(linklist)malloc(sizeof(node)); linklist temp=head; head->next=NULL; for(int i=0;i<num;i++){ linklist n=(linklist)malloc(sizeof(node)); printf("please input the %dth number",i); scanf("%d",&(n->element)); temp->next=n; temp=temp->next; } return head; } void display(linklist head){ linklist temp=head; while(temp->next){ temp=temp->next; printf("%d\n",temp->element); } } int main(){ linklist head=insertFromHead(10); display(head); return 0; }
接下來是尾插法:
// // Created by yuyu on 2020/10/15. //使用尾插法實現單鏈表 #include "stdio.h" #include "stdlib.h" typedef struct Point{ int element; struct Point *next; }node,*Linklist; Linklist initLinklist(int num){ Linklist head=(Linklist)malloc(sizeof(node)); head->next=NULL; for(int i=num;i>0;--i){ Linklist n=(Linklist)malloc(sizeof(node)); printf("please input the %d number",i); scanf("%d",&(n->element)); n->next=head->next; head->next=n; } return head; } void display(Linklist head){ Linklist temp=head; while(temp->next){ temp=temp->next; printf("%d\n",temp->element); } } int main(){ Linklist head=initLinklist(10); display(head); return 0; }
這是數據結構中最簡單最基本的結構,動態的單鏈表,我自己通過找工作發現編碼習慣和能力真的很重要,養成好的編碼習慣包括命名習慣和注釋習慣以及縮進習慣,不僅能讓你的代碼可讀性更好,而且可以讓你的代碼看起來賞心悅目,努力實現自己的夢想從一點一滴開始吧。上次寬度乘法器的實驗已經做出來了,最近太忙,代碼沒時間整理,等有時間我會放到我的GitHub上面,嘻嘻