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...