培訓筆記寫著寫著想出書了。《計算機協會常規培訓_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指標,存放該元素的後繼在陣列中的下標。我們把這種用陣列描述的鍊錶叫做靜態鍊錶。陣列的第...