#ifndef link_h
#define link_h
#include#include#includeusing namespace std;
templatestruct linknode //-----------------------------鍊錶結點類定義
linknode(const t&item,linknode*ptr=null)//初始化
};templateclass list //單鏈錶類定義,不用繼承也可實現
//----------------建構函式
list(const t&x)//----建構函式
list(list&l);//----------------複製建構函式
~list()
void makeempty();//----------------將鍊錶置為空表
int length()const;//---------------計算鍊錶長度
linknode*search(t x);//---------------搜尋含資料x的元素
linknode*locate(int i);//-------------搜尋第i個函式位址
void searchfromlast(int i);
bool getdata(int i,t&x);//-------------取出第i個函式位址
void setdata(int i,t&x);//-------------修改第i個函式位址
bool insert(int i,t&x);
bool remove(int i,t&x);
bool isjoined(listl,listr);
bool isempty()const
bool isfull()const
void input(int a,int n);
void max(t &x);
void min(t &x);
void output();
void removerepition();
void reverseprint(linknode*t);//逆向輸出
void sort(); //插入排序法
void directsort(); //直接排序法
bool iscircle();//判斷乙個單鏈表是否存在環鏈
void reverse();//原地翻轉鍊錶
void reverse(linknode*t); //遞迴實現
void reversetwo();//間接翻轉鍊錶
list&operator=(list&l);//-------------過載函式:賦值
protected:
linknode*first;
};templatelist::list(list&l)
destptr->link=null;
};templatevoid list::makeempty()
};templateint list::length()const
return count;
};templatelinknode*list::search(t x)
return current;
};templatelinknode*list::locate(int i)
return current;
};
templatevoid list::max(t &data)
};
templatevoid list::min(t &data)
};
templatebool list::getdata(int i,t&x) };
templatevoid list::setdata(int i,t&x)
;
templatebool list::insert(int i,t&x)
; templatebool list::remove(int i,t&x)
; templatevoid list::output()
cout};
templatevoid list::input(int a,int n)
};
templatelist& list::operator=(list&l)
destptr->link=null;
return *this;
};templatevoid list::directsort()
} }
};templatebool list::iscircle()
cout<<"the last "bool list::isjoined(listl,listr)//如果兩個鍊錶相交,那麼他們的最後結點相同
while(q->link!=null)
if(p!=q)
if(p!=null)cout<<"相交點為: "q=r.gethead()->link;
while(p!=q)
if(p!=null)cout<<"相交點為: "};templatevoid list::reverse(linknode*t)//用遞迴實現翻轉
;templatevoid list::removerepition()
}templatevoid list::reversetwo() //插入反轉
}#endif
資料結構 鍊錶
鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...
資料結構 鍊錶
鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...
資料結構 鍊錶
一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...