#include
using
namespace std;
typedef
int dt;
struct node
node
(const dt& item, node* ptr =
null)}
;class
list
//預設建構函式
list
(const dt& x)
list
(const list& ln)
;//拷貝建構函式
~list()
;//析構函式
void
makeempty()
;bool
insert
(int
, dt&);
//向鍊錶第i個位置新增資料
bool
remove
(int i, dt& x)
;//移除某個結點
bool
isempty()
const
//判斷是否為空
intsize()
const
//鍊錶長度
void
show()
;//顯示鍊錶
node*
gethead()
const
node*
search
(dt)
;//查詢結點
node*
locate
(int
)const
;//定位
bool
getdate
(int i, dt& x)
const
;//獲取資料
void
setdate
(int i, dt& x)
;//設定資料
void
output()
;void
create
(int n)
;protected
: node* first;
int length;};
//拷貝建構函式
list::
list
(const list& ln)
destptr-
>link =
null;}
//置空
void list::
makeempty()
}//查詢
node* list::
search
(dt x)
return p;
}///定位
node* list::
locate
(int i)
const
return p;
}//獲取資料
bool list::
getdate
(int i, dt& x)
const
}//設定資料
void list::
setdate
(int i, dt& x)
//插入
bool list::
insert
(int i, dt& x)
newnode-
>link = first;
first = newnode;
}else
newnode-
>link = p-
>link;
p->link = newnode;
} length++
;return1;
}bool list::
remove
(int i, dt& x)
void list::
output()
cout << endl;
}void list::
create
(int n)
node* ptemp =
null
; node* pnew =
null
;this
->length = n;
ptemp =
this
->first;
for(
int i =
0; i < n; i++
) cout <<
"建立完成"
<< endl;
return;}
intmain()
ls1.
output()
; cout << ls1.
size()
<< endl;
}
#include
using
namespace std;
template
<
class
t>
class
node
;template
<
class
t>
class
list;//
//預設建構函式
template
<
typename t>
list
::list()
//拷貝建構函式
template
<
typename t>
list
::list
(const list& ln)
tail-
>next =
nullptr;}
//向鍊錶新增資料
template
<
typename t>
void list
::add
(t e)
//查詢結點
template
<
typename t>
t list
::find
(int index)
if(index >= length)
int x =0;
t data;
node
* p;
if(index < length /2)
}else
}return p-
>data;
}//刪除結點
template
<
typename t>
void list
::remove
(t index)
node
* p = head;
while
(p->next !=
nullptr)}
}//刪除所有結點
template
<
typename t>
void list
::removeall()
node
* p = head-
>next;
while
(p != tail)
head-
>next = tail;
tail-
>prev = head;
length =0;
}//公升序排序
template
<
typename t>
void list
::ascsort()
q = q-
>next;
} p = p-
>next;}}
//判斷是否為空
template
<
typename t>
bool list
::isempty()
//鍊錶長度
template
<
typename t>
int list
::size()
//輸出鍊錶
template
<
typename t>
void list
::show()
node
* p = head-
>next;
while
(p != tail)
std::cout << std::endl;
}//反向輸出鍊錶
template
<
typename t>
void list
::resshow()
std::cout << std::endl;
}//析構函式
template
<
typename t>
list::~
list()
while
(head-
>next !=
nullptr
)delete head;
head =
nullptr;}
intmain()
資料結構 鍊錶
鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...
資料結構 鍊錶
鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...
資料結構 鍊錶
一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...