talk is cheap, show you the code.
#include
typedef struct node list;
list
* createlist() //建立乙個帶有空頭結點的空鍊錶
int length(list
*ptrl) //求表長
return i-1;}
*ptrl) //向鍊錶的頭部新增值為x的新節點
*ptrl) //向鍊錶的尾部新增值為x的新節點
list
* findkth(int k, list
*ptrl) //查詢第k個節點,返回對應指標
if(i==k && p!=
null)
return p;
else
return
null;
}list
* find(int x, list
*ptrl) //查詢鍊錶中第乙個值為x的節點,返回指向該節點的指標
void insert(int x, int i, list
*ptrl) //在鍊錶第i個節點的位置插入值為x的新節點
else
printf("該位置不存在\n");
}void delete1(int i, list
*ptrl) //刪除第i個節點
else
}void delete2(int x, list
*ptrl) //刪除所有值為x的節點
else
p = p->next; //若未進行刪除操作,指標移向下乙個節點
}}void showlist(list
*ptrl) //正序輸出鍊錶中所有節點的值
printf("\n");
}
資料結構雙向鍊錶及基本操作實現 C語言實現
雙向鍊錶的特點 雙向鍊錶相對於單向鍊錶其優點在於其可以同時檢視某個節點的前驅節點和其後繼節點,當然因為乙個節點使用了兩個指標來記錄前後節點的位置,其每個節點占用的記憶體空間自然更大 其實現的基本操作 如下 include include include typedef int elementtype...
資料結構C語言實現 線性鍊錶
declaration.h ifndef declaration h included define declaration h included define true 1 define false 0 define ok 1 define error 0 define infeasible 1 ...
資料結構 鍊錶(純c語言實現)
include include typedef struct nodelnode,linklist linklist greatlinklist int n return list 實現鍊錶的插入操作。1 前驅結點不用找,前驅結點是作為函式的引數的,用來搞清要插入的結點的位置。2 將前驅結點的指標域...