資料結構學習記錄 鍊錶1

2021-08-09 16:44:22 字數 2442 閱讀 8063

單向鍊錶

單向鍊錶的每乙個結點都用乙個結構表示,該結構由資料和指向該結構的指標組成。

*乙個double型別的單向鍊錶結點

typedef struct node

node;

*乙個自定義資料型別的單向鍊錶結點

typedef struct book

book;

typedef struct a_node_of_book_list

a_node_of_book_list;

雙向鍊錶

typedef struct node

node;

typedef struct a_node_of_book_list

a_node_of_book_list;

迴圈鍊錶

在迴圈鍊錶中,最後乙個結點的next指標指向第乙個結點

typedef struct node

;如何在單向鍊錶的末尾插入乙個結點

*為新結點分配空間

*檢查該結點是否為第乙個結點

node* push_back(node *last,int info)

//如果它不是第乙個結點

else

//返回鍊錶的末尾

return p;}}

如何在單向鍊錶首部插入結點

node* push_front(node *h,int info)

如何得到單向鍊錶的第乙個元素

int front_element(node *h)

node* first(node *h)

如何得到單向鍊錶的最後乙個元素

int back_element(node *h)

node* last(node *h)

遍歷單向鍊錶

void display(node *h)

計數單向鍊錶中結點的個數

int count(node *h)

}如何得到單向鍊錶中資料項的頻率

//函式返回特定元素的頻率

int frequency(node *h,int value)

如何搜尋單向鍊錶中特定的資料項

//函式返回變數s在鍊錶中的位置

int searchindex(node *h,int s)

if(search_status == found)

return c;

else

//資料項未找到,返回不可能的位置-1

return -1;}}

如何得到單向鍊錶中特定結點的位址

//函式返回特定位置變數的位址

node* get_address(node *h,int index)

return p;

}如何在單向鍊錶的特定位置後插入節點

node* insert(node *h,int location,int info)

q->next = p->next;

p->next = q;

q->data = info;       

}return r;

}如何得到單向鍊錶的最大元素

int findmax(node *h)

return max;

}如何得到單向鍊錶的最小元素

int findmin(node* h)

return min;

}使用給定值編輯特定結點的內容

node* replace(node *h,int location,int info)

q = p->next;

q->next = p->next->next;

q->data = info;

}//返回頭結點指標

return r;

}//根據位置得到結點的值

int get_value(node* h,int index)

合併兩個鍊錶

例鍊錶 11=12,13,14,15    12=16,17,18,19

如果想要合併成12,13,18,19  則merge(11,12,1,2,3,4)

如果想要合併成12,13,14,15,16,17,18,19 則merge(11,12,1,count(11),1,count(12))

node* merge(node *list_1,node *list_2,int start_1,int finish_1,int start_2,int finish_2)

資料結構學習記錄 1

1.資料結構是相互之間存在一種或對多種特定關係的資料元素的集合。2.在任何問題中,資料元素都不是孤立存在的,而是在他們之間存在著某種關係,這種資料元素之間的關係叫做結構 3.根據資料元素之間關係的不同特性,通常有4類基本結構 a.集合 結構中的資料元素之間除了 同屬於用乙個集合 的關係外,沒有其他關...

資料結構學習 鍊錶

將從下面4部分進行介紹 首先介紹鍊錶是什麼,然後介紹為什麼定義鍊錶,接著是鍊錶的分類,最後簡單介紹一下鍊錶結點的插入與刪除方法。首先,在介紹鍊錶之前,我們先介紹一下什麼是順序儲存結構。我們知道資料在計算機中的儲存就像貨物在倉庫中的儲存一樣,不但占用一定的空間,還要有乙個標示儲存位置的位址。計算機通過...

資料結構學習 鍊錶

由於不必須按順序儲存,鍊錶在插入的時候可以達到o 1 的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o n 的時間,而線性表和順序表相應的時間複雜度分別是o logn 和o 1 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶...