C語言實現一般線性表的鏈式儲存

2021-08-09 15:32:34 字數 2020 閱讀 4231

c語言實現一般線性表的順序儲存,以下是在vs2013編譯通過的,歡迎討論。有關資料結構的概念可看我的另一篇文章

#ifndef _linklist_h_

#define _linklist_h_

typedef void linklist;

typedef struct _tag_linklistnode

linklistnode;

linklist* linklist_create();

void linklist_destroy(linklist* list);

void linklist_clear(linklist* list);

int linklist_length(linklist* list);

int linklist_insert(linklist* list, linklistnode* node, int pos);

linklistnode* linklist_get(linklist* list, int pos);

linklistnode* linklist_delete(linklist* list, int pos);

#endif

#include#include "stdlib.h"

#include "string.h"

#include "linklist.h"

typedef struct _tag_linklist

tlinklist;

linklist* linklist_create()

void linklist_destroy(linklist* list)

void linklist_clear(linklist* list)

int linklist_length(linklist* list)

int linklist_insert(linklist* list, linklistnode* node, int pos)

//讓node節點鏈結後續鍊錶

node->next = current->next ;

//讓前邊的鍊錶。鏈結node

current->next = node;

tlist->length ++;

return 0;

}linklistnode* linklist_get(linklist* list, int pos)

ret = current->next;

return ret;

}linklistnode* linklist_delete(linklist* list, int pos)

//準備環境讓輔助指標變數 指向煉表頭節點

current = &tlist->header;

for (i=0; inext!=null); i++)

ret = current->next;

//刪除演算法

current->next =ret->next;

tlist->length--;

return ret;

}

#include#include "stdlib.h"

#include "string.h"

#include "linklist.h"

typedef struct

point;

int main()

} printf("\n");

while(linklist_length(list) > 0) }

linklist_destroy(list);

getchar();

return 0;

}

四、執行結果

C語言實現線性表的鏈式儲存結構

為了表示每個資料元素ai與其後繼元素之間的邏輯關係,對ai來說,除了儲存其本身資訊外,還需要乙個儲存直接後繼的位置資訊。我們把資料元素資訊的域叫做資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱為指標或者鏈。這兩部分資訊組成元素ai的儲存映像,稱為結點。ifndef s linklis...

線性表的鏈式儲存結構(C語言實現)

由於線性表的順序儲存結構在進行插入與刪除是要移動大量的元素,會耗費大量的時間,線性表的鏈式儲存結構就完美的解決了這個問題。首先是單鏈表的建立,有頭插法和尾插法。頭插法 隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l 頭插法 void createlisthead linklist l,int n...

一般線性表的合併(C語言描述)

三 完整原始碼 四 執行結果展示 假設利用兩個線性表 la 和 lb 分別表示兩個集合 a 和 b 即線性表中的資料元素為集合中的成員 現要求乙個新的集合 a aub 假如,設 la 7,5,3,11 lb 2,6,3 合併後la 7,5,3,11,2,6 合併 void union linklis...