資料結構之線性鍊錶

2021-06-26 07:03:45 字數 1246 閱讀 9219

線性鍊錶是一種資料儲存結構,其分為順序儲存結構和鏈式儲存結構。

順序儲存結構儲存資料的方式和平時接觸到的陣列是一樣的,其資料結構定義如下:

#define maxsize 100

typedef struct sqlist

;

關於鍊錶的初始化,尋找資料,插入資料,刪除資料等操作,與陣列類似,這裡就不做詳細介紹了。但是就插入,刪除資料時,其總是要移動資料結構,其時間複雜度就為o(n),不太方便。從而引入了鏈式儲存結構,其資料結構(也稱之為結點)定義如下:
typedef struct node

;其包括乙個資料域和指標域,指標域是指向下乙個結點的指標。

對於鏈式儲存結構其有頭結點和頭指標,頭結點不是必須有的。下面介紹一下有關鏈式儲存的幾種操作:
(1)建立鍊錶(有兩種方法頭插法和尾插法)**如下:
void createlisthead(linklist *l, int n)

}}

void createlisttail(linklist*l,int n)

r->next = null;//千萬不要忘了最後乙個節點的指標域為null

}

(2)插入鍊錶

void insertlist(linklist l,int i,elemtype e)

//然後進行插入

linklist p;

p=(linklist)malloc(sizeof(node))

p->data = e;

p->next = l->next;

l->next = p;

}

(3)刪除鍊錶中的資料

void deletelist(linklist l,int i,elemtype e)

p=l->next;

l->next= l->next->next;

free(p);

}//

上述的插入和刪除函式都沒有對輸入的i進行判斷,所以當我們進行程式設計要考慮l是否為空i是否超出了鍊錶的長度等問題,從而使程式設計問題嚴密化。

資料結構線性表之鍊錶

c 關於鍊錶的操作,包括建立鍊錶 正序和倒序插入 輸出鍊錶內容 插入節點 刪除節點 銷毀等操作 單鏈表基本操作 include include define elemtype int typedef struct nodelnode,linklist linklist link linklist m...

資料結構之線性鍊錶的演算法

include iostream.h include malloc.h 這個只是乙個小小的標頭檔案 這些都是用鍊錶表示的線性鍊錶 的一些最為常見的一些函式 這些函式做得最不好的乙個地方就是沒有將線性表的長度存放在鍊錶的頭節點 define error 0 define ok 1 define nul...

資料結構系列二之線性鍊錶

線性鍊錶包含單向鍊錶 雙向鍊錶和迴圈鍊錶。對比線性陣列,鍊錶在更新操作時比線性陣列的時間複雜度要低很多,所以 根據不同的需求選擇不同的資料結構很關鍵。線性表特性 線性陣列在記憶體中連續存放 查詢快 固定大小不適合動態更新資料 線性鍊錶通過指標互連 插入 刪除快 動態分配空間 鍊錶簡單示例圖 單向鍊錶...