棧和佇列的實現

2021-10-01 04:45:21 字數 2712 閱讀 1055

#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的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...