資料結構與演算法學習之c 實現鍊錶

2021-08-20 09:20:34 字數 1290 閱讀 2140

//c++建立單鏈表及其基本操作//

#include

#include

using namespace std;

class node

;typedef int datatpye;

class list_user

;list_user::list_user()

list_user::~list_user()

void list_user::creatlist(int n)

}void list_user::locationinsert(int n, datatpye num)

int max = length();

if (n>0 && n

newnode->next = loc->next;//將新節點的next指標指向n+1位置節點處

loc->next = newnode;//將n位置處的節點指向新節點

}if (n >= max)

newnode->next = null;

loc->next = newnode;}}

void list_user::deletedata(datatpye num)

if (temp->data == num && i == len - 1)//滿足條件並且是最後乙個節點

h = temp;}}

void list_user::deletelocation(int n)

node* temp=new node;

node* h = head;

if (n

h->next = temp->next;

delete(temp);

}if (n == len)

h->next = null;

delete(temp);}}

void list_user::insert(datatpye num)

node* newnode = new node();//為新節點分配空間

h->next = newnode;

newnode->data = num;

}void list_user::deleteall()

}int list_user::length()

return length;

}datatpye list_user::locationdata(int n)

node* h = head;

for (int i = 0; i

return h->data;

}//鍊錶介面功能測試

int main()

演算法學習之資料結構之雙向鍊錶

雙鏈表的沒乙個元素都是物件,每個物件包含乙個關鍵字域和兩個指標域 next,prev 當然,每個物件還可能包含一些其他的衛星資料。next指向後繼節點,prev指向前驅節點。如果prev x null,則無前驅節點,是head頭節點。如果next x null則無後繼節點,是最後乙個節點,即尾節點t...

資料結構與演算法學習系列(3) 迴圈鍊錶

1 迴圈鍊錶應用例項 約瑟夫環問題 編號為1,2,n的的n個人按照順時針方向圍坐在一張圓桌周圍,每個人持有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個人開始按照順時針方向自1開始報數,報到m時停止報數,報m的那個人出列,將他的密碼作為新的m值,從他順時針方向的下乙個人開始重新從1...

資料結構與演算法之鍊錶

鍊錶的分類 1 單鏈表 頭插法 只需要維護乙個頭結點即可,常用來模擬堆疊 尾插法 需要維護頭結點和尾結點,常用來模擬佇列。2 雙向鍊錶 雙向遍歷,可以用來儲存網頁的歷史記錄等 3 迴圈鍊錶 經常出現在面試題中,判斷鍊錶是否有環。鍊錶的刪除 方式一 維護兩個指標,current 表示當前節點 和pre...