c 語言 乙個鍊錶的實現

2021-07-06 03:01:33 字數 1745 閱讀 5926

#include

#include

typedef int elementtype;

typedef int bool;

#define true 1

#define false 0

inline bool compare(int a,int b,bool flag)

typedef struct lnode

linklist;

linklist * createlist()

r->next = null;

return l;

}void listinsert(linklist * l)

printf("please enter the data to insert:");

scanf("%d",&e);

linklist * p = l;

linklist * s;

s = (linklist *)malloc(sizeof(linklist));

s->data = e;

int i;

for( i = 0;i < position - 1;i++)

p = p->next;

s->next = p->next;

p->next = s;

l->data++; // l的長度增加1

}void listdelete(linklist * l)

linklist * p = l;

linklist * r = p;

int i;

for( i = 0; i < position -1;i++)

p = p->next;

r = p->next;

p->next = r->next;

free(r);

l->data--; //l的長度減小1

}void bubblesort(linklist * l)

pre = pre->next;

p = pre->next;

s = p->next;

}if(!change) break;}}

int findelement(linklist * l)

if( i > l->data)

return -1;

else

return i;

}bool getelement(linklist * l,elementtype * eptr)

else}/*

elementtype * getelement(linklist * l)

else

}bool getelement(linklist * l,elementtype ** eptr)

else}*/

void displaylist(linklist * l)

}void distroylist(linklist * l)

free(pre);

}int main()

printf("\n");

}distroylist(linklist);

return 0;

}/* 寫程式時的一些收穫

1.c語言函式沒有引用傳遞,只能按值傳遞。在函式內的指標操作比c++要複雜。

2.for(int i = 0;i < length;i++) 這種寫法在c89下無法編譯通過。

3.if(length <= 1); if條件語句後多加乙個分號,等同於空語句,編譯器不會報錯。

*/

C語言中的乙個鍊錶!

struct element struct element newelement char name char pwd int add struct element head,struct element ele while head next 0 head next ele return 1 st...

迴圈鍊錶的乙個C 實現

下面是迴圈鍊錶的乙個c 實現,參考了 資料結構與演算法分析c語言版 及不少牛人的分析總結,在此一併感謝了。在vc2005上經反覆驗證試驗,結果非常不錯。這是乙個比較簡易的實現,讓其繼承自單鏈表,並提供了乙個專為解決約瑟夫問題的函式 removeat 以後將會開發乙個更一般性的版本。注意 單鏈表及雙向...

乙個簡單的雙向鍊錶(C 實現)

直接上 親測有用。ifndef dlink h define dlink h phead index0 index1 index2 phead phead index0 index1 index2 phead phead 不儲存資料。index是從0開始的。count index 1 templat...