簡單鍊錶實現

2021-08-26 13:44:09 字數 1873 閱讀 9119

今天元旦,不想工作。只想寫一寫自己想學習的東西。。今天就寫了個鍊錶的單向鍊錶。

//標頭檔案chain.h

#ifndef _chain_

#define _chain_

#include #include using namespace std;

templateclass chain;

templateclass chainnode

;templateclass chain

//判斷是否為空

int length()const;//返回其長度

//查詢位置為k的資料,知道到返回true,找不到返回false,資料存在t中

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

//插入資料。

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

//刪除位置為k的資料

chain& delete(int k);

//查詢資料t,c查到返回,查不到返回-1

int search (const t& t)const;

///輸出鍊錶

void output(ostream& out)const;

//刪除所有節點

void erase();

inline void zero()

private:

chainnode* first;

};template class chainiterator

return 0;

} t* next()

return 0;

}private :

chainnode* location;

};#endif

// chainlist.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include "chain.h"

template chain::chain()

template chain::~chain()

}template int chain:: length()const

return i;

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

chainnode* current=first;

int i=0;

while (inextlink;

} if(current)

return false;

}template chain& chain::insert(int k,const t& t)

int i;

for(int index=1;indexnextlink;

if (k>0&&!p)

chainnode* chn=new chainnode;

chn->data=t;

chn->nextlink=p->nextlink;

p->nextlink=chn;

} catch (...)

if(k==this->length())

chainnodeq=p->nextlink;

p->nextlink=q->nextlink;

delete q;

return *this;

} catch (...)

if (p) return i; }

templatevoid chain::output(ostream& out)const

outtemplatevoid chain::erase()

}int _tmain(int argc, _tchar* argv)

鍊錶實現系列(一) 簡單鍊錶Java實現

簡單鍊錶的原理在這裡就不贅述了,推薦一篇比較不錯的部落格 鍊錶原理 需要實現的操作包括 在頭節點之前插入節點 在尾節點之後插入節點 刪除包含指定資料的節點 刪除尾節點 查詢包含指定資料的節點 獲取鍊錶的長度 輔助操作包括 清空鍊錶 判斷鍊錶是否為空。下面是簡單鍊錶的實現 注意 該鍊錶實現不適合用於儲...

c 鍊錶簡單實現

鍊錶 include using namespace std template struct node template class linklist public linklist node p new node head p p next null node push front const t...

OC簡單實現鍊錶

學習之餘用oc寫了個鍊錶,由於之前一直寫c語言,所以用了兩種寫法實現,兩種都是類的方法實現不過實現方式不一樣 第一種是變相的結構體寫法,裡面有濃濃的c語言結構體的味道 先看一下第一種寫法 ps 乙個shnode類和一盒main shnode.h import inte ce shnode nsobj...