#include
using
namespace std;
typedef
int selemtype;
typedef
struct stack
;void
create
(stack &s)
void
destroy
(stack &s)
s.base = s.top =
null
; s.maxnum =0;
}void
clean
(stack &s)
bool
empty
(stack &s)
else
}int
length
(stack &s)
selemtype top
(stack &s)
void
insert
(stack &s,selemtype e)
selemtype pop
(stack &s)
void
last
(stack &s)
}int
main()
} cout<<
"length:"
<<
length
(s)
"top:"
<<
top(s)
; cout<<
"top:"
<<
top(s)
(s);
clean
(s);
cout<<
empty
(s);
destroy
(s);
cout<<
empty
(s);
cout<<
"length:"
<<
length
(s)<}
我感覺用結構體,來實現棧,太假了。真實的情況,應該是封裝在乙個類裡面的,並且還呼叫了模板函式一類的東西,但具體是怎麼實現的,我也不知道。就自己估摸著,寫了乙個。
#include
#include
using
namespace std;
typedef
int number;
template
<
typename t>
class
node
;template
<
typename t>
void node
::push
(t x)
template
<
typename t>
void node
::pop()
intmain()
for(
int i=
0;i<
5;i++
)return0;
}
後來又寫了乙個佇列的
#include
#define maxnum 100
using namespace std;
template
class queue
;template
queue::
queue()
template
void queue::
push
(t x)
template
void queue::
pop(
)int
main()
for(
int i=
0;i<
5;i++
)}
#include
using
namespace std;
template
<
class
t>
struct queue
;template
<
typename t>
class
queues
void
push
(t x)
;void
pop();
};template
<
typename t>
void queues
::push
(t x)
template
<
typename t>
void queues
::pop()
intmain()
;for
(int i=
0;i<
5;i++
)for
(int i=
0;i<
5;i++
)return0;
}
總結:
protected繼承和private繼承一毛一樣!
protected成員和private成員有且僅有乙個不同:
派生類可直接呼叫基類的protected成員(無論哪種繼承方式),不能直接呼叫基類的private成員(無論哪種繼承方式)。
摘自:
棧和佇列的手動實現 用棧實現佇列 用佇列實現棧
1 用陣列結構實現大小固定的棧和佇列 1 棧 public static class arraystack arr new integer initsize size 0 public integer peek 返回棧頂元素但並不讓元素出棧 return arr size 1 public void...
實現棧和佇列
一 棧的實現 入棧 出棧 取棧頂元素 順序表實現棧操作 實現 public class mystack data size val size 2.出棧 public integer pop integer result data size 1 size return result 3.取棧頂元素 p...
佇列實現棧棧實現佇列
佇列是一種先進先出的資料結構,要想實現先進後出,需加乙個輔助佇列進行資料的來回倒 引用交換 從而實現棧結構。例如 5 4 3 2 1 用乙個輔助佇列裝 4 3 2 1,把5彈出,在把 4 3 2 1放回原佇列,如此反覆可變成5 4 3 2 1的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...