線性表的鏈式儲存實現

2022-03-03 05:34:12 字數 1434 閱讀 4694

#include #include /* 下面的單鏈表是帶頭節點的 */

typedef int elementtype;

struct listnode ;

typedef struct listnode list;

// 函式宣告

int insert (list *tmp, elementtype x, int pos);

void print (list *tmp);

int getlength (list *tmp);

int delete (list *tmp, int pos);

int main ()

print(head);

insert(head, 999, 11);

print(head);

delete(head, 1); //刪除第1個節點

printf("刪除節點後的效果\n");

print(head);

return 0;

}// 插入

// 引數說明: 要插入的鍊錶 插入值 插入位置

// pos的合法取值範圍是 [1, length+1]

// 取值為1代表插入到第1個節點之前, 取值為length+1代表插入到表尾

int insert (list *tmp, elementtype x, int pos)

ptr = tmp; // ptr指向頭結點

while (count < pos)

cur = (list*)malloc(sizeof(list));

cur->data = x;

cur->next = ptr->next;

ptr->next = cur;

return 0;

}// 得到鍊錶的長度

int getlength (list *tmp)

return length;

}// 迴圈列印輸出鍊錶資訊

void print (list *tmp)

printf("\n");

printf("\n");

}// 刪除

// 刪除給定位置上的節點

int delete (list *tmp, int pos)

int count = 1;

list *ptr;

list *poscur; // 存放要刪除節點的指標

ptr = tmp;

// 找到 pos-1 這個節點

while (count < pos)

// 迴圈結束後 ptr 指向 pos-1 這個節點

poscur = ptr->next;

ptr->next = poscur->next;

free(poscur);

return 0;

}

線性表的鏈式儲存

此方法雖然簡單,但是真寫起來太複雜了。線性表的鏈式儲存 include include struct lnode 線性表的初始化 void init l lnode l 線性表的後插建立 void create l1 lnode l n next null 線性表的後插建立 void create ...

線性表的鏈式儲存

引言 一 單鏈表 相較於順序儲存用連續的儲存單元儲存,單鏈表採用鏈式儲存結構,用一組位址任意的儲存單元儲存資料元素。特點 1 儲存單元可以是不連續的,即邏輯結構與物理結構可以不相同 2 元素用結點儲存,每個結點由元素值和下乙個元素的位址構成 3 單鏈表是由每個結點的指標域按照邏輯次序相互連線而成的。...

線性表的鏈式儲存

include include include typedef int elemtype typedef struct nodenode,nodeptr 鍊錶節點 typedef struct listlist,listptr 鍊錶,頭結點為0位置 listptr initlist 初始化鍊錶 vo...