//
順序棧
// #ifndef
astack_h
#define
astack_h
#include
"stack.h"
template
<
class
elem
>
class
astack
: public
stack
<
elem
>
~astack()
void
clear()
bool
push
(const
elem
& item)
} bool
pop(
elem
& it)
} bool
topvalue
(elem
& it)
} int
length
() const
//利用棧將棧逆置
//具體分為以下幾步:宣告乙個變數,用來臨時存放棧頂元素,記為a;
//宣告乙個順序棧,棧長比原棧小
1,記為ls;
//首先將棧頂元素放入
a,將剩下的元素放入
ls,再將
a放入原棧,接著將
ls中所有元素放入原棧;
//重複n此,
n為棧長;
void
reverlist()
this
->
push
(a);
while
(ls.
length
())
} }
}; #endif
//stack
類,定義棧中的方法
//只有五個方法:
1、清空;
2、進棧;
3、出棧;
4、獲得棧頂元素值;
5、輸出棧高
#ifndef
stack_h
#define
stack_h
#include
using
namespace
std;
template
<
class
elem
>
class
stack;
#endif;
//鏈式棧的節點
#ifndef
slink_h
#define
slink_h
//鏈棧節點
#include
using
namespace
std;
template
<
class
elem
>
class
slink
slink
(slink
* nextval
=null)
}; #endif
// ! slink_h
//鏈式棧
#ifndef
lstack_h
#define
lstack_h
#include
"stack.h"
#include
"slink.h"
template
<
class
elem
>
class
lstack
: public
stack
<
elem
>
~lstack()
//清空表 //
清空表的操作流程:將
top元素乙個乙個
delete掉
void
clear()
else
delete
top;
size--;
cout << size << endl; }
} //入棧
bool
push
(const
elem
& item)
//出棧
bool
pop(
elem
& it)
} //
獲取棧頂值
bool
topvalue
(elem
& it)
//獲取棧長
intlength
() const
// void
reverlist()
this
->
push
(a);
while
(ls.
length
())
} }
}; #endif
棧 實現鏈棧和順序棧)
按不同的儲存結構,可以將棧分為順序棧和鏈棧。順序棧的實現 typedef int datatype const int maxnum 1000 struct sqstack 判斷棧空 bool isempty else return false 判斷棧滿 bool isfull else retur...
C 鏈式棧和順序棧
分類 1.順序棧 2.鏈式棧 常用操作 push 和 pop 常見應用 1.括號匹配問題 2.逆波蘭表示式 說明 個人c 練習 鏈式棧 優點 棧的大小靈活 缺點 不能像陣列一樣靈活遍歷 include using namespace std 鏈式棧 struct data struct stackn...
順序棧和順序佇列
1.棧的定義 棧是限定在表尾進行插入和刪除操作的線性表 把允許插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 不含任何資料元素的棧稱為空棧。棧又稱為後進先出的線性表。棧的插入操作,叫做進棧,也稱為壓棧,入棧。子彈入彈夾 棧的刪除操作,叫做出棧,也有的叫做彈棧。1 順序棧的進棧操作 插...