資料結構 C 實現 鍊錶 1 基本實現

2021-07-15 22:09:30 字數 1949 閱讀 4858

template

class chainnode ;

template

class chain ;

~chain();

bool isempty() const

int length()const;

bool find(int k, t &x)const;

int search(const t& x)const;

chain& delete(int k,t& x);

chain& insert(int k, const t& x);

void output(ostream& out)const;

private:

chainnode*first;//point to the first node

};

能用const的地方盡量使用const。

1.刪除鍊錶中所有結點的析構函式~chain()

templatet>

chain

::~chain()

}

2.計算鍊錶長度的函式length()

template

int chain::length()const

return count;

}

3.判斷某個元素是否在鍊錶中:find()

template

bool chain::find(int k, t& x)const

if (current->data == x)//這個地方和書上寫法不一樣

//感覺原書寫錯了~~

return

true;

else

return

false;

}

4.尋找鍊錶中是否包含某個元素x,並返回該元素的索引。

template

int search(const t& x)

if(current)

return i;

else

return

0;}

5.輸出函式output():

template

void chain::output(ostream& out)const

6.過載《操作符:

template

ostream& operator<<(ostream& out,const chain& x)

7.刪除某個元素x:

templatechain& chain::delete(int k, t& x) 

if (!q || !q->link)

throw "outofbounds";

current = q->link;

q->link = current->link;

}x = current->data;

delete current;

return

*this;

}

8.插入某個元素,與刪除某個元素很類似:

template

chain& chain

::insert(int k, const t& x)

if (k >0&&

!p)throw "outofbounds";//不存在第k個元素

chainnode

*y =

new chainnode;

y->

data;

if (k)

else

//k=0,結點y作為第乙個元素插入

return

*this;

}

資料結構鍊錶實現

二 實驗基本原理與設計 三 主要儀器裝置及耗材 四 附錄 利用linux gnu make c 專案管理軟體工具實現資料結構鍊錶 linked list 要求實現以下功能 push,pop,insert,delete,search,visit go through,clear。節點的資料必須具有一般...

c 資料結構鍊錶的實現

資料結構中最開始學習實現的就是鍊錶 1 這個標頭檔案 list head 為建立結構體,用來儲存資料 include using namespace std template struct node 建立結構體 template node node template node node type i...

資料結構 鍊錶的實現 C

昨天寫了鍊錶,目前只寫了單鏈表,等有時間把迴圈鍊錶什麼的變異產品再寫出來 只有頭指標 沒有頭結點 的單鏈表 pragma once template struct node template class singlelinkedlist include singlelinkedlist.h temp...