單鏈表的建立以及功能的實現

2022-08-15 02:57:10 字數 1579 閱讀 6129

#include#include

#include

typedef

intdatatype;

typedef

struct nodelistnode,*linklist;

listnode *p;

linklist head;

/*注意:定義結點結構時,有幾點需要注意:linklist和listnode *是不同名字的同乙個指標型別,linklist型別的指標變數head表示他是單鏈表的頭指標,listnode *型別的指標變數p表示它是指向某一結點的指標

*/linklist initlist()

l->next=null;

returnl;}

linklist creatlistf()

l->next=null;

scanf("%d

",&x);

while(x!=0

)

s->data=x;

s->next=l->next;

l->next=s;

scanf("%d

",&x);

}returnl;}

linklist creatlistl()

listnode *s,*r;

r=l;

scanf("%d

",&x);

while(x!=0)/*

以0輸入表示結束

*/ s->data=x;

r->next=s;

r=s;

scanf("%d

",&x);

}r->next=null;/*

單鏈表的最後乙個指標為空

*/returnl;}

intgetlength(linklist l)

return

(num);

}listnode *getnode(linklist l,int

i) p=l->next;

while(p!=null&&jreturnp;}

intlocatelisti(linklist l,datatype x)

if(p==null)

return0;

else

return

i;}

void insertlist(linklist l,datatype x,int

i) s=(listnode *)malloc(sizeof

(listnode));

if(s==null)

s->data=x;

while(j<=i)

s->next=p;

q->next=s;

}void deletelist(linklist l,int

i)

while(jq=p->next;

p->next=q->next;

free

(q);

}void

printlist(linklist l)

printf("\n

");}int

main()

單鏈表常見功能的實現 以及逆轉等

include define size 40 using namespace std 實現乙個棧,用於後面將鍊錶中的元素先壓棧再彈出棧實現反向列印的功能 int stack size int top 0 棧頂指標 判空 int is empty 判滿 int is full 壓棧 void push...

單鏈表結構實現增刪查以及合併功能

資料結構鍊錶結構,實現增刪查以及兩個鍊錶合併功能,vc 環境,直接複製貼上就能執行。include include define error 0 define ok 1 typedef int status typedef int elemtype typedef struct node lnode...

單鏈表簡單功能實現

看了鍊錶題,基本上不會做,然後各種找部落格,初次嘗試寫了寫,感覺指定值刪除的功能有點難 所以沒有寫,待學習過後會補上 其他的還可以,這裡面的尤其要注意的是用temp轉換head進行遍歷,主要的 如下,大神多給點學習的建議,謝謝 這是功能體 package csdn public class link...