**寫多還是會愈發的順手。寫這個示例時,主要的問題在於實現時節點和鍊錶的表示指標有點混亂,不能夠馬上的反映出來。革命尚未成功,同志仍需努力啊!
寫完之前的**,停下來看了下別人前面內容的實現過程,對比發現結構還是比較混亂的。本例中將節點用結構體表示,包含兩個資料成員,分別是資料域和指標域。然後將棧定義為乙個模板類,包含兩個私有成員,分別是棧的頭指標和棧中元素的個數。將棧的基本功能函式宣告在類公有成員。這樣整體結構就完善許多。
棧的鏈式儲存結構標頭檔案
template
<
typename t>
//結構體定義節點
struct node
;template
<
typename t>
class
chstack
;
#pragma once
#ifndef stack_h_
#define stack_h_
template
<
typename t>
struct node
;template
<
typename t>
class
chstack
;template
<
typename t>
chstack
::chstack()
template
<
typename t>
bool chstack
::push
(t &e)
template
<
typename t>
bool chstack
::pop
(t &e)
return
true;}
template
<
typename t>
t &chstack
::gettop()
else
return top-
>data;
}template
<
typename t>
bool chstack
::isempty()
template
<
typename t>
int chstack
::length()
const
#endif
棧的鏈式儲存結構示例**
#include
#include
#include
"stack.h"
using
namespace std;
void
main()
cout <<
"\nthe number of the stack element is: "
; cout << test.
length()
<< endl;
cout <<
"the top of the stack is: "
; cout << test.
gettop()
<< endl;
int num = test.
length()
; string out;
for(
int i =
0; i < num; i++)}
}
C語言實現鏈式佇列的基本功能
rear指向隊尾部元素,front指向隊頭元素的前乙個 鏈式佇列相當與鍊錶很相似,有著頭指標和頭節點,傳引數也都是傳的指標,但是不同的是這裡的指標是結構體指標,可以看成二級指標 所以在列印等函式中需要有個中間變數,否則會改變front和rear的指向 include include struct b...
資料結構之棧的基本功能實現
棧是一種基本的資料結構,在很多地方都會用到。這次複習,通過以下 實現了棧的一些基本功能 順序棧的基本功能的實現 include define true 1 define false 0 define stack size 50 define stackelement char typedef str...
C實現陣列的基本功能
實現了陣列的基本操作 插入,刪除,逆序,排序等 不足之處,只能在初始化的時候確定陣列的大小,陣列滿時不能動態擴充容量 以後改進 排序演算法可用其它代替冒泡。include include include include 定義陣列型別 定義資料結構體 typedef struct array 顯示陣列...