第六節 雙鏈表

2021-09-29 12:07:16 字數 1383 閱讀 4113

結構特點:

template

struct dnode;

**設指標p指向雙鏈表中某一結點,則有下式成立: 

p->llink->rlink = p = p->rlink->llink **

建立空雙鏈表:

first->rlink=null

first->llink=null

last=first

插入操作:

q->rlink=p->rlink;

q->llink=p;

p->rlink=q;

q->rlink->llink=q;

處理原則:先處理每個方向的 遠端指標,再處理近端指標,否則會把原後繼節點弄丟

雙向刪除:

p->llink->rlink=p->rlink;

p->rlink->llink=p->rlink;

delete§;

建造空的雙鏈表

template

doublelink ::doublelink()

頭插法:

template

void doublelink::display()

coutdelete p;

p=q;

}
靜態鍊錶的優缺點

優點:插入和刪除時不需要移動元素,直接修改指標即可,因此效率較高

缺點:靜態鍊錶是借助於陣列實現的,因此,不能動態的修改陣列的大小,存在著跟靜態陣列一樣不能按需進行儲存空間的分配

約瑟夫環的問題:

順序表:

建立乙個長度為n的順序表

從第index(初值0)個元素出發,依次計數,每數到d,就將該元素刪除

index=(index+d-1)%順序表的長度

重複上述工作,直到順序表中只剩乙個元素

迴圈鍊錶:

#include

using namespace std;

struct node

;int main()

p->pnext = first;

p = first;

for(i=1;i<=k-1;i++) //尋找報數的起點

p=p->pnext;

while (p != p->pnext) //只剩下乙個結點的

q = p->pnext; //q為要出隊的元素

p->pnext=q->pnext;

delete q;

p=p->pnext;

}cout << p->data

第六節 Node陣列

var arr new array var arr array var arr array 1,2,3,4 var arr var arr 1,2,3 instanceof 操作符 array.isarray 方法 1.將物件的鍵值轉換為陣列 object.keys 2.string型別轉換為陣列 ...

C 學習 第六節

什麼是型別 type 型別在c 中的作用 c 語言的型別系統 變數 物件與記憶體 型別 type 資料型別 性質相同的值得集合 記憶體 內部儲存單元,計算機執行程式的空間 外存 擴充套件儲存器,硬碟 賦值用 判斷用 dynamic 動態字元定義,弱型別的使用方法,c 是強型別程式語言 1 資料型別表...

第六節 檔案處理

f.open file 檔案路徑 mode 模式 encoding 編碼 變數名 f.read print 變數名 f.close 模式描述 r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。r 開啟乙...