C語言雙向鍊錶的基本操作實現

2022-08-24 16:09:10 字數 1516 閱讀 3301

#include #include 

intlen;

//定義雙向鍊錶的節點

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 頭插法...