今天寫了點雙向鍊錶的各種操作,寫插入的時候費了點時間,不過,現在看來還是值得耗費那點時間去寫的,這種小東西應該能信手拈來才行啊。
1/*雙向鍊錶
*/2 #include 3 #include /*
strcmp(const char *,const char *) return 0 is equal*/4
5 typedef struct
dulnode
6stud;
10/*
建立,返回煉表頭指標,引數n-節點個數
*/11 stud *create(n);
12/*
查詢,返回節點位址,引數h-煉表頭指標,name為查詢條件
*/13 stud * search(stud *h,char *name);
14/*
刪除*/
15void del(stud *p);
16/*
顯示,引數-h,煉表頭節點,num-顯示節點個數
*/17
void show(stud *h,int
num);
18/*
求鍊錶長度
*/19
int length(stud *head);
20/*
插入節點,引數head-煉表頭節點,name-節點,n-節點位置
*/21 stud *insert(stud *head,char *name,int
n);
22int
main()
2336
void show(stud *head,int
num)
3745
if(num>length(head))
4650
if(strcmp(head->name,"") == 0)51
54else
5558
while
(sp)
59else
6569}70
}7172 stud *create(n)
7382 h->name[0] = '\0'
;83 h->prior =null;
84 h->next =null;
85/*
插入節點
*/86 p =h;
87for(i=0;i)
8895 p->next =s;
96 printf("
%d's name:\n
",i+1
);97 gets(s->name);
98 s->prior =p;
99 s->next = null;/*
末尾插入
*/100 p =s;
101}
102 p->next =null;
103return
(h);
104}
105106 stud * search(stud *head , char *name)
107117
else
118121
}122
if(re ==null)
123126
return
(re);
127}
128129
void del(stud *p)
130136
else
137142
}143
144int length(stud *head)
145
157}
158return
len;
159}
160161 stud *insert(stud *head , char *name , int
n)162
169 nhead =head;
170if(n>length(head)||n<0
)171
175/*
插入節點
*/176
while(cnt177181 p = (stud *)malloc(sizeof
(stud));
182if(p !=null)
183192
193return
nhead;
194 }
雙向鍊錶C語言
鍊錶結構定義 typedef struct node 建立鍊錶 int creat list struct node h h data 0 0 h llink null h rlink null return 1 清空鍊錶 int free list struct node h return 1 查...
C語言雙向鍊錶
雙向鍊錶基本結構 typedef struct pnode pnode 建立乙個雙向鍊錶,並列印出煉表中儲存的資料 include include 包含malloc函式 void main pnode 第乙個節點head pnode head malloc sizeof pnode head dat...
C語言雙向鍊錶
原文 c語言雙向鍊錶 今天寫了點雙向鍊錶的各種操作,寫插入的時候費了點時間,不過,現在看來還是值得耗費那點時間去寫的,這種小東西應該能信手拈來才行啊。1 雙向鍊錶 2 include 3 include strcmp const char const char return 0 is equal 4...