帶表頭結點的單鏈表 的插入 刪除 排序

2021-10-03 06:45:53 字數 1892 閱讀 3577

#include

#include

#include

struct node //結構體定義值域和指標域

;typedef

struct node node;

typedef

struct node * link;

void

is_malloc_ok

(link new_node)

//判斷分配空間是否成功

}void

create_node

(link * new_node)

//建立節點就是給其分配空間

void

create_link

(link *head)

void

insert_node_head

(link * head,link new_node)

void

insert_node_tail

(link * head,link new_node)

p->next = new_node;

new_node->next =

null;}

void

insert_node_mid_head

(link * head,link new_node,

int loc)

//引數變數包含從哪個鍊錶插入,插入的節點

if(p ==

null

)else

}void

insert_node_mid_tail

(link * head,link new_node,

int loc)

if(p ==

null

)else

}void

insert_node_sort_soc

(link * head,link new_node)

q->next = new_node;

new_node->next = p;

}void

delete_node

(link head,

int loc)

if(p ==

null

)else

}void

display_link

(link head)

while

(p !=

null)}

void

release_link

(link *head)

}int

main()

display_link

(head)

;/* printf("please input the num to insert!\n"); //在某個節點前插入新節點

scanf("%d",&loc);

create_node(&new_node);

new_node->num = 100;

// insert_node_mid_head(&head,new_node,loc);

insert_node_mid_tail(&head,new_node,loc);

display_link(head);

printf("please input the num to delete!\n"); //阿紫某個節點後插入新節點

scanf("%d",&loc);

delete_node(head,loc);

display_link(head);

*/release_link

(&head)

;//釋放空間

display_link

(head)

;//顯示

return0;

}

帶表頭結點的單鏈表的基本操作

已知l 是帶表頭結點的非空單鏈表,且p結點既不是首元結點,也不是尾元結點 1.刪除p結點的直接後繼結點 思路 先用工作結點儲存p結點的直接後繼,然後將p結點的指標域指向p結點的直接後繼節點的直接後繼節點,然後再刪除該工作結點。2.刪除p節點的直接前驅結點 有毛病 思路 用工作結點儲存p結點,然後將表...

單鏈表的基本操作 單鏈表的建立 插入 刪除結點等

1 單鏈表的建立 2 建立結點 3 列印結點 4 鍊錶的插入 頭插法 5 鍊錶的刪除 指定位置刪除 include include include 結構體 結點由資料域 指標域構成 struct node 建立鍊錶 表頭 struct node createlist 建立結點 struct node...

單鏈表的基本操作 單鏈表的建立 插入 刪除結點等

1 單鏈表的建立 2 建立結點 3 列印結點 4 鍊錶的插入 頭插法 5 鍊錶的刪除 指定位置刪除 適合新手初步認識學習單鏈表的基本操作 include include include 結構體 結點由資料域 指標域構成 struct node 建立鍊錶 表頭 struct node createli...