基類:
#ifndef linearlist_h
#define linearlist_h
/** filename: linearlist.h
*creater:qianchenglong
*date:2011/10/18
*comments: 線性表的抽象基類
*/template
class linearlist
~linearlist()//析構函式
{}virtual int length() const=0;//求表長;
virtual int search(const t& x)const=0;//根據值搜尋位序;
virtual t getdata(int i) =0;//取值;
virtual void setdata(int i,const t x) =0;//賦值;
virtual bool insert(int i,t& x) =0;//插入;
virtual bool remove(int i,t& x) =0;//刪除;
virtual bool isempty() const=0;//判斷表空;
virtual void output() const=0;//輸出;
};#endif
類定義:
#ifndef linkedlist_h
#define linkedlist_h
#include"linearlist.h"
template
class linkedlist:public linearlist
;template
struct linkedlist::listnode;
#include"linkedlist.cpp"
#endif
類實現:
#ifndef linkedlist_cpp
#define linkedlist_cpp
#include"linkedlist.h"
#include
//template
linkedlist::listnode::listnode(const t& _data)//巢狀類的建構函式
:data(_data),next(0)
{}template
linkedlist::listnode::listnode()
:next(0)
{}//
template
linkedlist::linkedlist()
template
linkedlist::~linkedlist()
}template
bool linkedlist::pushback(const t& x)
template
bool linkedlist::pushfront(t& x)
template
int linkedlist::length() const
//template
typename linkedlist::listnode *linkedlist::locate(int i)
template
bool linkedlist::insert(int i,t& x)
template
bool linkedlist::remove(int i,t& x)
template
int linkedlist::search(const t& x) const
if(work->data!=x)
return 0;
else
return i;
}template
t linkedlist::getdata(int i)
template
void linkedlist::setdata(int i,const t x)
template
bool linkedlist::isempty() const
template
void linkedlist::output() const
std::cout<
功能測試:
#include
#include"linkedlist.h"
int main()
{linkedlistlist;
for(int i=0;i!=10;++i)
list.pushback(i);
list.output();
std::cout<
線性表鏈式儲存
線性表鏈式儲存結構的建立 刪除最小值結點 值唯一 刪除某個指定值 不唯一 就地逆置 反向輸出 遞增排序 刪除重複結點 根據奇偶序號劃分成兩個帶頭結點的單鏈表。include stdio.h include stdlib.h typedef struct lnode lnode,llist void ...
線性表 鏈式儲存
概念 邏輯上相鄰的兩個資料元素在物理位置上可能相鄰也可能不相鄰,這中儲存結構為非順序映像或鏈式映像。特點 線性表的鏈式儲存結構的特點是可以用一組任意的儲存單元來儲存線性表中的資料,這組儲存單元可以是連續的,也可以是不連續的。由於這種特性,單鏈表中要取得第i個元素,必須從第乙個元素開始尋找,因此單鏈表...
線性表鏈式儲存結構
include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...