資料結構與演算法 棧 定義與操作

2021-10-06 11:51:42 字數 2698 閱讀 1983

#include

#include

/** * 棧 複習**

* adt stack is

* operations:

* 1. stack createemptystack(void) 建立空棧

* 2. int isemptystack(void) 判斷是否為空棧

* 3. void push(stack st,datatype x) 向棧st的棧頂新增元素x

* 4. void pop(stack st) st的棧頂元素出棧

* 5. datatype top(stack st) 求st棧頂的元素

* end adt stack

*//**

* 順序棧 定義與操作

* 預設棧中元素為int型

*/struct seqstack

;typedef

struct seqstack* pseqstack;

//指向順序棧的指標型別

/** * 1.順序棧建立方法

* @param size

* @return

*/pseqstack createempteystack_seq

(int size)

else

}printf

("順序棧建立失敗\n");

return

null;}

/** * 2.判斷順序棧是否為空

* @param pastack

* @return

*/int

isemptystack_seq

(pseqstack pastack)

return0;

}/**

* 3.順序棧插入元素操作 進棧

* @param pastack

* @param x

*/void

push_seq

(pseqstack pastack,

int x)

else

}/**

* 4.順序棧 刪除棧頂元素 出棧

* @param pastack

*/void

pop_seq

(pseqstack pastack)

else

}/**

* 5.順序棧 取得棧頂元素

* @param pastack

* @return

*/int

gettop_seq

(pseqstack pastack)

else

}int

main()

printf

("列印初始棧:\n");

for(

int i=

0;i<=pastack->top_position;i++

)printf

("棧是否為空:\n");

if(!isemptystack_seq

(pastack)

)else

printf

("999入棧:\n");

push_seq

(pastack,

999)

;for

(int i=

0;i<=pastack->top_position;i++

)printf

("棧頂元素出棧:\n");

pop_seq

(pastack)

;for

(int i=

0;i<=pastack->top_position;i++

)printf

("取得棧頂元素:%d\n"

,gettop_seq

(pastack));

return0;

}

#include

#include

struct seqstack

;typedef

struct seqstack* pseqstack;

pseqstack createemptystack_seq

(int size)

printf

("element* create failed");

}printf

("stack create failed");

}int

isempty_seq

(pseqstack pastack)

return0;

}void

push_seq

(pseqstack pastack,

int x)

pastack->top_position++

; pastack->element[pastack->top_position]

= x;

return;}

void

pop_seq

(pseqstack pastack)

}int

gettop_seq

(pseqstack pastack)

}int

muilt

(int number)

while(!

isempty_seq

(pastack)

)return muiltnumber;

}int

main()

資料結構與演算法 佇列 定義與操作

佇列複習 adt queue is operations queue createemptyqueue void 建立乙個空佇列 int isemptyqueue queue qu 判斷佇列qu是否為空 void enqueue queue qu,datatype x x進入隊尾 void dequ...

資料結構與演算法《棧》

概念 棧 stack 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使...

棧(資料結構與演算法)

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...