第三章 2 棧和佇列 棧的應用舉例

2022-08-26 17:21:19 字數 1545 閱讀 2910

前言:

本節為棧的應用舉例,只包括**實現部分

目錄:2.棧的應用舉例

進製轉換:

括號匹配:

正文:進製轉換實現**:

注意:此函式要和上一節,棧的實現**放在一起

//

進製轉換

void

conversion()

printf("%s

","轉換8進製後為:");

while(s.base!=s.top)

}

括號匹配**實現:

匹配**在 charmatch(char *pc) 函式內實現,其他部分都是棧的基本操作。

#include#include

#include

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

#define stack_init_size 100

#define stackincrement 10

//status是函式的型別,其值是函式結果狀態碼

typedef int

status;

//typedef int selemtype;

typedef char

selemtype;

typedef

struct

sqstack;

//構造空棧

status initstack(sqstack &s)

//插入元素 (入棧)

status push(sqstack &s,selemtype e)

*s.top++=e;

return

ok;}

//刪除元素(出棧)

status pop(sqstack &s,selemtype &e)

else

return

ok;}

void printallvalues(sqstack &s)

printf(

"base:%p\n

",s.base);}

//gettop獲取棧頂元素

selemtype gettop(sqstack &s)

return *(s.top-1);}

//進製轉換

void

conversion()

printf("%s

","轉換8進製後為:");

while(s.base!=s.top)}//

括號匹配 包括:{} ()

void charmatch(char *pc)

')||(top=='

('&&d==')'

))else

}if(s.base!=s.top)

else

}void

main()(])";

charmatch(c);

}

第三章 棧和佇列

棧和佇列 一 棧 1 棧的定義 棧是限定僅在表尾進行插入和刪除操作的線性表,允許插入和刪除的一端稱為棧頂,另一端稱為棧底,不含任何資料元素的棧稱為空棧。2 在任何時候出棧的元素都只能是棧頂元素,即最後最後入棧者最先出棧。所以棧中元素除了具有線性關係外,還具有後進先出的特性。3 棧的抽象資料型別定義 ...

第三章 棧和佇列

棧和佇列是兩種常用的資料結構,同時又是操作受限的線性表,也是兩種重要的抽象資料型別。1 1棧是限定僅在表尾進行插入和刪除操作的線性表。棧中元素具有線性關係和後進先出的特性。2雖然對插入和刪除操作的位置限制減少了棧的靈活性,但同時也使得棧的操作更有效更容易實現。3棧的儲存結構分兩種,一種是順序儲存結構...

第三章 棧和佇列

第三章棧和佇列 一 棧1.棧 限定僅在表尾進行插入和刪除操作的線性表 允許插入和刪除的一端稱為棧頂 另一端稱為棧底 2.空棧 不含任何資料元素的棧。3.在任何時候出棧的元素都只能是棧頂元素,即最後入棧者最先出棧,具有後進先出的特性。4.棧的抽象資料型別定義 1 push 輸入 元素值 x 輸出 如果...