此為本人在學習資料結構時所寫的,各個功能能夠實現,有多個檔案:
main檔案
#include
"link.h"
#include
"list.h"
#include
"llist.h"
#include
#include
using namespace std;
void
print
(llist<
int>
&a,int n)
;int
main()
/***********************
*function of print
*列印順序表中元素
************************/
void
print
(llist<
int>
& a,
int n)
cout<
}
list.**件
#ifndef list_h
#define list_h
template class list
list
(const list&
)
public:
list()
// 建構函式
virtual ~
list()
// 析構函式
virtual void
clear()
=0;// 清空列表中的內容
virtual void
insert
(const e& item)=0
;// 在當前位置插入元素item
virtual void
(const e& item)=0
;// 在表尾新增元素item
virtual e remove()
=0;//刪除當前元素,並將其作為返回值
virtual void
movetostart()
=0;//將當前位置設定為順序表起始處
virtual void
movetoend()
=0;// 將當前位置設定為順序表末尾
virtual void
prev()
=0;// 將當前位置左移一步,如果當前位置在首位就不變
virtual void
next()
=0;// 將當前位置右移一步,如果當前位置在末尾就不變
virtual int
length()
const=0
;// 返回列表當前的元素個數
virtual int
currpos()
const=0
;// 返回當前元素的位置
virtual void
movetopos
(int pos)=0
;// 將當前位置設定為pos
virtual const e&
getvalue()
const=0
;// 返回當前元素};
#endif
list.cpp檔案為空
link.**件
#ifndef link_h
#define link_h
#include
template
<
typename e>
class
link
link
(link* nextval =
null)}
;#endif
link.cpp檔案為空
llist.**件
#ifndef llist_h
#define llist_h
#include
"list.h"
#include
"link.h"
#include
using
namespace std;
template
<
typename e>
class
llist
:public list
void
removeall()
}public
:llist
(int size=
100)
// 建構函式
~llist()
// 析構函式
void
print()
const
;// 列印列表內容
void
clear()
// 清空列表
void
insert
(const e& it)
void
(const e& it)
e remove()
void
movetostart()
// 將curr設定在鍊錶頭部
void
movetoend()
// 將curr設定在鍊錶尾部
void
prev()
void
next()
//將curr指標往後移一步;如果已經指向尾部了就不需要改變
intlength()
const
// 返回當前列表大小
intcurrpos()
const
void
movetopos
(int pos)
const e&
getvalue()
const};
#endif
llist.cpp為 資料結構 鍊錶
鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...
資料結構 鍊錶
鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...
資料結構 鍊錶
一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...