鍊錶定義 鍊錶的插入 鍊錶的刪除 鍊錶的查詢

2021-10-09 13:48:34 字數 2270 閱讀 8282

鍊錶的定義

鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個「頭指標」變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為「結點」,每個結點都應包括兩個部分:一為使用者需要用的實際資料,二為下乙個結點的位址。因此,head指向第乙個元素:第乙個元素又指向第二個元素;……,直到最後乙個元素,該元素不再指向其它元素,它稱為「表尾」,它的位址部分放乙個「null」(表示「空位址」),鍊錶到此結束。

結構體形式

struct test

;

鍊錶的插入

(1)頭插法

struct test *

insertfromhead

(struct test *head)

else

if(head ==

null

)else

}return head;

}

(2)尾插法

struct test *

insertfromtail

(struct test *head)

if(p ==

null

)else

if p->next = new;}}

return head;

}

(3)在指定節點前插

struct test *

insertfrombefore

(struct test *head,

int insert_data,

struct test *new)

//遍歷

while

(p->next !=

null

) p = p->next;

}printf

("no this data %d\n"

,insert_data)

;return head;

}

head:煉表頭節點

insert_data :被前插節點的值

new:新節點

(4)在指定節點後插

struct test *

insertfrombehind

(struct test *head,

int insert_data,

struct test *new)

p = p->next;

}printf

("no this data %d\n"

,insert_data)

;return head;

}

head:煉表頭節點

insert_data :被後插節點的值

new:新節點

鍊錶固定節點的刪除

struct test *

delelink

(struct test*head,

int data)

while

(p->next!=

null

) p=p->next;

}return head;

}

data:要刪除節點的data值

鍊錶的查詢

int

searchlink

(struct test* head,

int data)

head=head->next;

}}

鍊錶節點的計算

int

getlinknumbr

(struct test* head)

return cnt;

}

鍊錶的列印

void

printlink

(struct test *head)

putchar

('\n');

}

鍊錶空間的釋放

void

freespace

(struct text *head)

鍊錶 有序鍊錶(插入刪除遍歷)

插入的節點位置有兩種情況,一是有previous節點,而是沒有previous節點 鏈結點public class link public void displaylink public class sortedlist 插入資料 public void insert long key 說明key是...

鍊錶插入刪除

include include typedef struct node node,linklist void createlist linklist head 建立鍊錶 s node malloc sizeof node s next null s data data p next s p s in...

鍊錶 刪除鍊錶的節點

劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...