線性表之鍊錶

2021-07-16 04:09:48 字數 1712 閱讀 9810

鏈式的線性表適用於經常進行刪除,插入操作的工作,如:訂票系統。

鍊錶是用乙個乙個的節點連線起來的表,在物理上不是連續的,在邏輯上是連續的。通過節點間的指標指向來表示節點間的關係。

所以在進行鍊錶操作之前,要先定義乙個節點結構。節點結構包含兩個東西:資料域,指標域。資料域就是用來存放資料的,指標域是用來表示節點間的關係。

第一步:定義鍊錶節點

struct node

;

定義好了節點之後,接下來就是定義鍊錶初始化的方法。

第二步:初始化鍊錶

struct node *listinit()

head->pnext =null;

return head;

}

第三步:檢視鍊錶長度

int listlen(struct node *list)

return count;

}

第四步:新增元素,因為鍊錶的空間是動態分配,所以不存在滿的情況,不用判滿。

int listadd(struct node *list,int elem)

new->date = elem;

new->pnext = list->pnext;

list->pnext = new;

return 1;

}

第五步:刪除元素,要判空

int listempty(struct node *list)

然後定義刪除元素的方法

int listdel(struct node *list, int pos)

if (pos<1 || pos > listlen(list))

while (i!=pos)

temp->pnext = p->pnext;

free(p);

return 1;

}

第六步:插入元素。

int listinsert(struct node *list,int pos,int elem)

while(i < pos)

struct node *new = (struct node *)malloc(sizeof(struct node));

if(null == new)

new->date = elem;

new->pnext = temp->pnext;

temp->pnext = new;

return 1;

}

第七步:遍歷表,輸出資訊。

void listdisplay(struct node *list)

}

第九步:查詢元素。

int listfind(struct node *list,int elem)

while(null != temp)

temp = temp->pnext;

i++;

}return 0;

}

鍊錶其實很好理解,前提是要學會並理解指標,若看不懂的可先去學習下指標。

線性表之鍊錶

1,為什麼要使用鍊錶 1,順序表的長度是固定的,如果超出分配的長度就會造成溢位,如果存放的資料太少則會造成空間浪費。2,在插入元素和刪除元素時 尤其不在尾部時 會移動大量的元素,造成效能和效率低下。基於以上問題,使用鍊錶可以很好地避免順序表中出現的問題。這也是我們要使用鍊錶的原因。2,鍊錶的儲存結構...

線性表之鍊錶

1.初始化 void initlist list plist assert plist null if plist null plist data 不使用 plist next null 2.頭插 bool insert head list plist,int val 時間複雜度為o 1 node ...

線性表之鍊錶

1 實驗專案一 線性表的基本操作及其應用 兩次實驗課完成 definition of sequential list typedef struct sqlist definition of linked list typedef struct lnodelnode,linklist 實驗要求 1 程...