#include #includeintlen;
//定義雙向鍊錶的節點
typedef struct
node
node;
//初始化乙個鍊錶的節點、
node* create_node(void
) scanf("%d
",&(p->data));
p->prior =null;
p->next =null;
return
(p);
} //
建立含有n個結點的雙向鍊錶
node* create_list(int
n)
for(i = 2;i <= n;i++) //
生成第乙個結點以後的結點,並建立雙向鍊錶的關係
len =n;
if(n >= 1
)
return
(head);
else
return
0;
} //
鍊錶的長度
int len_list(int
len) //
定位到鍊錶的任意位置
node* pos_list(node *head,int
n)
return
p;}
//正向遍歷乙個鍊錶
void out_front_list(node *head)
else
}}
//反向遍歷乙個鍊錶
void out_reverse_list(node *head)
else
}} //
在鍊錶的頭部插入結點
node* start_insert_list(node *head)
//在鍊錶的尾部插入結點
node* end_insert_list(node *head) //
插入到任意位置之前
node* insert_befor_list(node *head)
else
else
}len++;
return
(head); }//
插入到任意位置之後
node* insert_after_list(node *head)
else
else
}len++;
return
(head); }//
刪除頭結點
node* delect_start_list(node *head) //
刪除尾結點
node* delect_end_list(node *head) //
刪除指定位置的節點
node* delect_list(node *head)
len--;
return
(head);
} int
main()
詳解雙向鍊錶的基本操作 C語言
上一節學習了單向煉表單鍊錶詳解。今天學習雙鏈表。學習之前先對單向鍊錶和雙向鍊錶做個回顧。單向鍊錶特點 1.我們可以輕鬆的到達下乙個節點,但是回到前乙個節點是很難的.2.只能從頭遍歷到尾或者從尾遍歷到頭 一般從頭到尾 雙向鍊錶特點 1.每次在插入或刪除某個節點時,需要處理四個節點的引用,而不是兩個.實...
雙向鍊錶的基本操作 C
參考其他人的雙向鍊錶實現,搞了乙個便於自己理解的練練筆。include include using namespace std 定義乙個節點 typedef struct doublelinknode node 建立乙個鍊錶 node create list int nums,int n retur...
鍊錶基本操作實現 c語言
include include typedef int elemtype typedef struct node linklist,linknode 鍊錶初始化 linklist initlinklist head next null printf 鍊錶初始化成功 n return head 頭插法...