鍊錶的增刪排序等操作

2021-06-08 03:08:55 字數 2398 閱讀 9693

#include #include typedef struct nodenode,*pnode;//node等價於struct node,pnode等價於struct node *

pnode create_list();//建立鍊錶

void show_list(pnode);//列印鍊錶

int getsize(pnode);//得到鍊錶長度

void delete_list(pnode);//刪除鍊錶

bool is_empty(pnode);//判斷是否為空

void insert_list(pnode);//插入乙個元素

void sort_list(pnode);//對鍊錶進行排序

int main(void)

//建立鍊錶

pnode create_list()

pnode ptail = phead;//令尾指標等於頭指標

ptail->pnext = null;

pnode p = ptail;

int i,val;

for(i=0; idata = val;

p->pnext = null;

ptail->pnext = p;

ptail = p;

} return phead;

} //列印鍊錶

void show_list(pnode phead)

printf("\n該鍊錶共有%d個元素\n",getsize(phead) );

pnode p = phead->pnext;

while(p != null)

printf("\n");

} //得到鍊錶長度

int getsize(pnode phead)

int count=0;

pnode p = phead->pnext;

while(p != null)

return count;

}//判斷是否為空

bool is_empty(pnode phead)

return false;

} //刪除鍊錶

void delete_list(pnode phead)

int size = getsize(phead);

printf("\n該鍊錶共有%d個元素\n", size);

printf("請輸入要刪除第幾個元素:");

int index;

scanf("%d",&index);

while( index<1 || index > size)

int i;

pnode p = phead;

pnode temp;

for(i=0; ipnext;

p->pnext = p->pnext->pnext;

free(temp); //把刪除的節點釋放,防止記憶體洩露

} p = p->pnext;

}} //插入乙個鍊錶

void insert_list(pnode phead)

int size = getsize(phead);

printf("\n該鍊錶共有%d個元素\n", size);

printf("請輸入要插入為第幾個元素 元素值:");

int index,val;

scanf("%d %d",&index,&val);

while( index<1 || index > size+1)

int i;

pnode p = phead;

//第一種插入的演算法

/* for(i=0; i<=size; i++)

p = p->pnext;

}*/

//第二種插入的演算法

i=0;

while(p!=null && i < index-1)

pnode temp = (pnode)malloc( sizeof(node) );

temp->data = val;

temp->pnext = p->pnext;

p->pnext = temp;

} //對鍊錶進行排序

void sort_list(pnode phead)

printf("\n鍊錶排序的結果如下:\n");

線性表的鍊錶的增刪查改等的操作

include d定義型別 typedef int ldatetype 定義結構體型別 typedef struct listnode listnode 定義頭指標 typedef struct list list 初始化頭指標 void inistlist list lst listnode cr...

鍊錶 增 刪 查 改 排序

define crt secure no warnings include include include typedef struct num ss ss head null int count 0 void add node void remove node int id void seek n...

鍊錶的初始化,增刪改查等

這幾天一直在看鍊錶,剛開始有點迷糊,看了兩天,後來發現鍊錶實際上挺簡單的,主要掌握住,怎麼判斷鍊錶為空,鍊錶怎麼表示,增刪改查操作時,應該怎麼操作當前結點,注意記憶體洩漏,掌握住了以上幾點,鍊錶應該就差不多了,廢話不多說,直接擼 include using namespace std class n...