今天元旦,不想工作。只想寫一寫自己想學習的東西。。今天就寫了個鍊錶的單向鍊錶。
//標頭檔案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...