C語言鍊錶的簡單編寫

2021-09-25 11:44:57 字數 2899 閱讀 6387

#include"head.h"

//建立乙個空鍊錶

linklist list_creat()

l->date=0;

l->next=null;

return l;

}//尾插法

int list_inset_tail(linklist l,int value)

s->next=null;

p->next=s;

return 0;}/*

//尾插法也就是正常的輸入和輸出

linklist list_inset_tail()

l->date=0;

l->next=null;

r=l;

while(1)

p=(linklist)malloc(sizeof(lnode));//建立乙個新結點

if(p==null)

p->date=value;

p->next=null;

r->next=p;

r=p;

} return l;

}*///通過位置來查詢

linklist list_find(linklist l,int n)

/* while(p->next&&jnext;

j++;

}*/while(p&&jnext;

j++;

}/* if(!p||j>n)//

else

*/ if(j==n)

else

}//按數值進行查詢

linklist list_pos_find(linklist l,int value)

return p;

}//插入資料使用的頭插法

int list_inset_head(linklist l,int value)

p->date=value;

p->next=l->next;

l->next=p;

return 0;

}//插入某個位置資料

int list_pos_inset(linklist l,int i,int value)

else

s=(linklist)malloc(sizeof(linklist));//建立乙個結點

if(s==null)

else

return 0;

}//在某個位置刪除資料需要找到的它的前驅

int list_del(linklist l,int i)

else

if(p==null||p->next==null)

else }

//實現函式中的資料倒置使用頭指標

void list_up_down(linklist l)

}//刪除頭結點

int list_del_head(linklist l)

//刪除尾結點

int list_del_tail(linklist l)

s=p->next;

value=s->date;

free(s);

s=null;

p->next=null;

return value;

}//遍歷

void list_show(linklist l)

}

#ifndef  __head_h

#define __head_h

#include#include#include//建立乙個結構體

typedef struct list lnode,*linklist;

//函式的宣告

linklist list_creat();

int list_inset_head(linklist l,int value);

void list_show(linklist l);

int list_inset_tail(linklist l,int value);

//linklist list_inset_tail();

linklist list_find(linklist l,int n);

linklist list_pos_find(linklist l,int value);

int list_pos_inset(linklist l,int i,int value);

int list_del(linklist l,int i);

void list_up_down(linklist l);

int list_del_head(linklist l);

int list_del_tail(linklist l);

int list_del_date(linklist l);

int list_update_pos(linklist l,int pos,int value);

void list_change_old(linklist l,int oldate,int newdate);

#endif

#include"head.h"

int main(int argc ,char *ar**)

else

*/ /* l=list_inset_tail();

list_show(l);*/

/* printf("input is a value\n");

scanf("%d",&x);

p=list_find(l,3);

printf("%d\n",p->date);

*//* l=list_inset_tail();

list_show(l);*/

return 0;

}

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...

c語言鍊錶 鍊錶

在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...

鍊錶演算法題,使用語言c 編寫

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...