就像一開始我的串列連結 完全沒注意到要在 外面設定一個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
沒有留言:
張貼留言