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

2021-08-09 23:56:23 字數 1275 閱讀 3125

由於線性表的順序儲存結構在進行插入與刪除是要移動大量的元素,會耗費大量的時間,線性表的鏈式儲存結構就完美的解決了這個問題。

首先是單鏈表的建立,有頭插法和尾插法。

頭插法:

/*  隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(頭插法) */

void createlisthead(linklist *l, int n)

}

2.尾插法:

/*  隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(尾插法) */

void createlisttail(linklist *l, int n)

r->next = null; /* 表示當前鍊錶結束 */

}

完整**:

#include

#include

#include

typedef struct nodenode;

typedef struct node *linklist;

/*頭插法建立單鏈表*/

void createlisthead(linklist *l, int n)

}/*尾插法建立單鏈表*/

void createlisttail(linklist *l, int n)

r->next = null;

}/*單鏈表的插入*/

void listinsert(linklist *l, int i, int e)

if (!p&&j>i)exit(0);//第i個結點不存在

s = (linklist)malloc(sizeof(node));

s->data = e;

s->next = p->next;

p->next = s;

}/*單鏈表的刪除*/

void listdelete(linklist *l, int i)

if (!(p->next) && j>i) exit(0);

q = p->next;

p->next = q->next;

free(q);

}void visit(int c)

void listprint(linklist l)

printf("\n");

}int main()

單鏈表的插入與刪除的關鍵都是要先找到要操作位置的前乙個結點,而插入與刪除不同,對於找到第i-1個結點,插入是while (p&&j

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

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

線性表 順序儲存結構 C語言實現

參考 大話資料結構 程杰 部落格 豆瓣 主要包括 列表定義 判斷列表是否為空 初始化列表 列印列表 清空列表 得到第i個位置元素 元素定位 列表第i個元素插入 列表第i個元素刪除 計算列表長度 include include define ok 1 define error 0 define tru...

線性表的順序儲存結構(C語言實現)

最近在研究資料結構,看了好多資料結構方面的書,但好多書都是用的偽 實現,對初學者或者語言功底不深厚的同學來說很不友好,也有好多書說是用c語言實現,但應用了c 的東西,比如c 中的引用,導致 晦澀難懂。學資料結構不能只是看書,一定要將各種結構用 實現,我也將各個部分實現的 貼出來。首先是線性表的順序儲...