C 010 資料結構 靜態鍊錶

2021-08-01 14:45:56 字數 3036 閱讀 8560

培訓筆記寫著寫著想出書了。《計算機協會常規培訓_c/c++ 第一版》。

1.靜態鍊錶(模擬鍊錶)的寫法。

2.靜態鍊錶的插入、刪除、初始化等操作。

3.過載operator 。

4.這裡只寫靜態迴圈雙鏈表,和雙鏈表的普通儲存方式,至於用間接定址方式的的同 上乙個部落格《c++_009_資料結構_線性表_間接定址方式儲存》的原理一樣。這裡不在贅述。

templatestaticlist::staticlist()//構成迴圈雙鏈表。

nulllistnext[maxsize-1] = -1;

}templatestaticlist::staticlist(int n)//構成非迴圈雙鏈表

nulllistnext[maxsize-1] = -1;

}templatestaticlist::staticlist(t a, int length) //含參建構函式。迴圈雙鏈表。

next[0] = 1;

for (int i = 1; i <= length; i++)

front[0] = length;

next[length] = 0;

this->length = length;

nulllist = length + 1;

for (int i = nulllist; i < maxsize; i++)

nulllistnext[maxsize - 1] = -1;

}templatestaticlist::~staticlist()//析構函式

templateint staticlist::getlength()//返回鍊錶長度

templatet staticlist::getpos(int pos)//獲取鍊錶往前數第 pos 個資料。

int add = 0;

for (int i = 0; i < pos; i++)

return data[add];

}templatet staticlist::operator(int pos)//獲取往後數第 pos 個資料。

int add = 0;

for (int i = 0; i < pos; i++)

return data[add];

}templatevoid staticlist::insertobjtopos(t obj, int pos)//在 pos 個位置 插入 資料obj

if (this->length > maxsize - 1)

int add =0;//找應插入的位置

for (int i = 0; i < pos; i++)

//找空閒鍊錶。

int nulladd = nulllist;

nulllist = nulllistnext[nulladd];

data[nulladd] = obj;

next[nulladd] = add;

front[nulladd] = front[add];

next[front[add]] = nulladd;

front[add] = nulladd;

length++;

}templatet staticlist::deletepos(int pos)//刪除 第 pos 個資料。

int add = 0;//找應刪除的位置,並把空間返回給空鍊錶。

for (int i = 0; i < pos; i++)

next[front[add]] = next[add];

front[next[add]] = front[add];

front[add] = -1;

//找空鍊錶。

next[add] = nulllist;

nulllistnext[add] = nulllist;

nulllist = add;

length--;

return data[add];

}templateint staticlist::locate(t obj)//查詢 obj的 位置。沒找到返回 -1.

else

}return res;

}templatet * staticlist::tofirstadd()//返回資料的首位址。

// 靜態鍊錶_普通版.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include#include"staticlist.cpp"

using namespace std;

int main()

; staticlista(test,7);

cout << "原始鍊錶:";

cout << a;

cout << "倒序輸出:";

printlist(a);

cout << "正數第三個元素:";

cout << a[3]getchar();

return 0;}

C資料結構 靜態鍊錶

對於線性鍊錶可用一維陣列來進行描述,這種描述方法便於在沒有指標型別的高階程式語言中使用鍊錶結構,即使用陣列描述的鍊錶稱為靜態鍊錶。由於全域性陣列是儲存在靜態區也叫做靜態鍊錶。c語言具有指標能力使其非常容易地操作記憶體中的位址和資料,對於物件導向的語言雖然不使用指標,但因為啟用了物件引用機制,從某種角...

資料結構鍊錶 靜態鍊錶

1 在這裡我們首先要複習一下鍊錶c語言的定義 這看起來很簡單,但實際上至關重要!data域 存放結點值的資料域。next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。注意 鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一...

資料結構 靜態鍊錶

首先我們讓陣列的元素都是由兩個資料域組成,data和cur。也就是說,陣列的每乙個下標都對應乙個data和乙個cur。資料域data用來存放資料元素,也就是通常我們要處理的資料 而游標cur相當於單鏈表中的next指標,存放該元素的後繼在陣列中的下標。我們把這種用陣列描述的鍊錶叫做靜態鍊錶。陣列的第...