#include
#include
struct node //定義結點的結構體
;typedef struct node node; //將struct node簡單定義為node
typedef struct node *link; //將stcuct node型別定義為*link
void create_link(link * head) //建立頭指標,並定義為空指標
void insert_node_head(link * head, link new_node) //插入新的結點(頭插)(插哪,哪個結點)
void insert_node_tail (link * head, link new_node) //尾插
else
p -> next = new_node;
new_node -> next = null;}}
void display_link (link head) //輸出
while(p != null)
}void release_link (link * head) //釋放鍊錶
}void delete_node (link * head, int number) //刪除其中乙個結點
else
else
if(p == null)
else if( p->next != null)
else }}
}int number_link (link head) //計算鍊錶長度並返回
return num;
link find_link (link head, int n) //查詢對應學號所在結點內容
return p;
}void flashback_link (link *head) //倒敘輸出鍊錶
else if(p2 -> next == null)
else
p3 -> next = p2;
(*head) -> next = null;
*head = p3;}}
void enter_link (link *head, link enter_node,int number) //插入新的結點
else if(p -> num == number)
else
if(p != null)
(enter_node) -> next = (p -> next);
p -> next = enter_node;
}else
p -> next = enter_node;
enter_node -> next = null;}}
int main()
new_node -> num = i + 1; //賦值
scanf("%s", new_node -> name);
// insert_node_head(&head, new_node);
insert_node_tail(&head, new_node);
}// display_link(head); //輸出
/*num = number_link(head); //返回結點數
printf("number = %d\n", num);
printf("please input the num, find the name:\n");
scanf("%d",&n);
printf("%s\n",find_link(head, n) -> name); // 輸出查詢號對應的名字
printf("\n");
printf("please input the number of delete:\n");
scanf("%d",&number);
delete_node (&head, number); //刪除其中乙個結點
flashback_link(&head); //倒敘輸出
*/ enter_node = (link)malloc(sizeof(node));
enter_node -> num = i + 1;
printf("please input the name:\n");
scanf("%s",enter_node -> name);
printf("please input the number of enter:\n");
scanf("%d",&number);
enter_link(&head, enter_node, number); //在已經輸入的結點裡再插入乙個新的結點
display_link(head); //輸出
release_link (&head); //釋放
display_link(head);
return 0;
}
鍊錶 反轉單向鍊錶
思路 從第二個元素開始。1 刪除當前元素。2 把當前元素放到頭結點位置。其中需要宣告3個變數 headnode 頭結點 prenode 前乙個結點 currentnode 當前結點 具體步驟如圖所示 實現 反轉單鏈表方法實現類 created by liujinjin on 17 1 19.publ...
鍊錶1 單向鍊錶
鍊錶中最簡單的一種是單向鍊錶,它包含兩個域,乙個資料域和乙個指標域,指標域指向鍊錶中的下乙個節點,最後乙個節點的指標域指向乙個空值 鍊錶最基本的結構是在每個節點儲存資料和到下乙個節點的位址,在最後乙個節點儲存乙個特殊的結束標記,另外在乙個固定的位置儲存指向第乙個節點的指標,有的時候也會同時儲存指向最...
鍊錶 單向鍊錶
討論單鏈表之前,我們先來討論下面這個問題。順序表存在的一些問題 中間 頭部的插入刪除,時間複雜度為o n 增容需要申請新空間,拷貝資料,釋放舊空間。會有不小的消耗。增容一般是呈2倍的增長,勢必會有一定的空間浪費。例如當前容量為100,滿了以後增容到200,我們再繼續插入了5個資料,後面沒有資料插入了...