關於鍊錶的建立和對鍊錶的操作 C語言

2021-07-02 22:22:49 字數 1989 閱讀 1827

(1)鍊錶結點的資料項型別

typedef char eletype;

(2)鍊錶結點的型別

typedef struct nodechainnode;

(3)鍊錶指標型別

typedef struct  list;

/*建立乙個儲存元素的節點。入口引數為儲存在新建立結點中的資料元素的值。返回節點指標,非0表示成功,0表示不成功。*/  

piont*creatpiont(eletype data)

p->tail=p->head;

return p;

下圖:

piont *newp;

newp=creatpiont(data);

if(!newp)return 0;

if(!(pl->head))return 0;

pl->tail->next=newp;

pl->tail=newp;

return 1;

下圖:

/*取編號為n的元素所在的結點的位址。入口引數為線性表的指標、編號。返回結點指標,非0表示成功,0表示失敗。*/

piont*getaddr(list *pl,int n)piont;

typedefstruct  list;

/*            

注意:如果你寫的鍊錶函式沒有順序,那麼請先申明

piont*creatpiont(eletype data);

list*creatlist(void);

piont*getaddr(list *pl,int n);

intdeletepiont(list *pl,int n);

intclearlist(list *pl);

intfreelist(list *pl);

intlistinsert(list *pl,int n,eletype data);

intlistbianli(list *pl,int (*f)(eletype *data));

intgetdata(list *pl,int n,eletype *data);

*/piont*creatpiont(eletype data)

p->tail=p->head;

return p;

piont *newp;

newp=creatpiont(data);

if(!newp)return 0;

if(!(pl->head))return 0;

pl->tail->next=newp;

pl->tail=newp;

return 1;

piont*getaddr(list *pl,int n)

return 1;

intlistbianli(list *pl,int (*f)(eletype *data));

char *c="zo!o u ydx";

inte[14]=;

list *pl;

int n;

int g=;

eletype h;

pl=creatlist();

show(pl);

for(n=0;c[n];n++)

clearlist(pl);

show(pl);

freelist(pl);                          

編譯連線顯示,結果是:

單向鍊錶的建立和操作

public class singlylinkedlistdemo title singlylinkedlist description 簡單單向鍊錶 類 company author sunny date 2016 9 28下午11 12 45 class singlylinkedlist 插入頭...

鍊錶的建立和刪除,初識鍊錶

include include include typedef struct date 申明結構體 date int main void else pe next ps 把新結點連線到鏈尾 第一次不執行,而到第二次pe就是上一次的ps 而pe next讓其指向下一次的ps pe ps 新結點成為了新...

關於C 的鍊錶操作

在學c語言的時候早已把鍊錶操作爛熟於心 而在學c 的時候,學會它的鍊錶操作也是必須的。其實,他們的操作大同小異 僅僅是動態記憶體分配的命令上的區別。c語言的動態記憶體分配以庫函式的形式包含在stdlib.h的標頭檔案中 他們是malloc和free 沒錯,他們是天生的一對 而為了更加方便鍊錶這種應用...