單鏈表的操作

2021-06-20 10:18:11 字數 2072 閱讀 4711

1.  定義單鏈表的介面函式

#ifndef _linklist_h_

#define _linklist_h_

typedef int elemtype;

typedef struct node

node;

node*initnode();

bool addnode(node *head,elemtype data); //頭插法

bool tailaddnode(node *head,elemtype data); //尾插法

bool display(node *head); //列印鍊錶

int getnum(node *head); //獲取節點數

bool insertnode(node *head, int pos ,elemtype data);

bool delnode(node *head, int pos); //刪除節點

void inverseprintlist(node *head); //反向列印鍊錶

bool sortlist(node *head); //鍊錶排序

bool clearlist(node * *head); //清除鍊錶

//遞迴實現鍊錶逆置

bool listinverse(node *head);

void reverselinklist(node *head);

#endif

2. 函式介面的實現:

#include "linklist.h"

#include #include node * initnode()

bool addnode(node * head,elemtype data)

bool tailaddnode(node *head,elemtype data)

bool display(node * head)

while (p=p->next);

printf("\n");

return true;

}int getnum(node * head)

return i;

}bool insertnode(node * head, int n ,elemtype data)

//位置超過長度,則值為i+1,

if(n>i)

n= i+1;

for(int j = 1; jnext;

node * q = initnode();

q->data = data;

q->next = p->next;

p->next =q;

return true;

}bool clearlist(node * *head)

(*head) = null; // 頭結點指標為空

return true;

}bool delnode(node * head, int n)

void inverseprintlist(node * head)

}//鍊錶插入排序

bool sortlist(node * head)

u=p->next;

p->next =r->next;

r->next =p;

p=u;

} return true;

}//遞迴實現鍊錶逆置

void reverselinklist(node * head)

bool listinverse(node * head)

reverselinklist(head->next);

head->next =rear;

return true;

}

3. 測試檔案:

#include "linklist.h"

#include #include int main(void)

單鏈表的操作

單鏈表是一種非常重要的資料結構,下面用c語言對單鏈表的操作做乙個簡單的總結 typedef struct nodenode,linklist 1 單鏈表的建立 建立乙個單鏈表,鍊錶裡面存放有十個偶數 2到20 有頭節點,頭節點不存放元素。linklist createlinklist return ...

單鏈表的操作

pragma once extern c list node,list link 頭插建立鍊錶 list link create list head int n 尾插法建立鍊錶 list link creat list tail int n 獲取長度 int get list length list...

單鏈表的操作

單鏈表的頭插法 尾插法 遍歷 初始化 在位置i前插入元素 刪除位置i處的元素 include include typedef int itemvalue typedef struct node 鍊錶節點定義 linknode,plinknode 初始化單鏈表 void initiallinklist...