就像一開始我的串列連結 完全沒注意到要在 外面設定一個head
結構link
data儲存 資料
*next 指標next指向 下個結構
struct link{ int data; struct link *next; }; void Creat_node(struct link *,int); //創建結點 void Insert_node(struct link *,int,int); // 插入結點 void Delete_node(struct link *,int); //刪除結點 void Look_list(struct link *); //列表列出各個結點
創建
______________________________________
插入
這邊的位置 指 第1個,第2個,第3個(依 某種順序而排列 的位置)
位址 指的是 那一塊結構的位址(如同門牌)
____________________________________________
刪除
____________________________________________
檢視.
檢視其實就是在指標只到下一個的時後順便把data印出來直到遇到NULL而已
所以就不放程式碼了(下方有 .c程式碼連結)
____________________________________________
稍微放下主程式的概念,有些程式碼沒放全,放全篇幅會拉太大
這邊的 head沒有指標,所以它的成員不能用-> ,
但是如果head的下一位 是用指標指的 那叫到它的成員就可以用
如: *(head.next).data or (head.next)->data
int main(){ int act=0,value,rank,i; struct link head; char temp[10]; //head 初值設定 head.data=0; head.next=NULL; while (act!=4){ act=0; //system("cls"); printf("chose action type \ncreat_node[0],\ninsert_node[1],\ndelet_node[2],\nlook_node[3],\nleave[4]\n"); scanf("%s",&temp); for(i=0;temp[i]!='\0';i++) //預防有人很奇怪的給你輸入w或其他非數字 , act=act*10+temp[i]-'0'; //下方rank 和 value都能用這種方法,只是我懶得用 if(act>=0&&act<5){ if(act==0) //Creat_node(&head,value); else if(act==1) //Insert_node(&head,rank,value); else if(act==2) //Delete_node(&head,rank); else if(act==3) //Look_list(&head); } } } system("pause"); return 0; }
____________________________________________
[C語言 練習 3]串鍊連結 程式碼
1.link test :練習 串列連結的建立 與 結構指標格式的使用
2.link test all in one :練習 串列連結的建立.插入.刪除.顯示
https://drive.google.com/drive/folders/1O2pdvfT9T0vl4vogYf_EZcYNEmb1JR55?usp=sharing
沒有留言:
張貼留言