資料結構2 3 棧和佇列 例題

2021-10-04 18:31:56 字數 3644 閱讀 1306

宣告:大部分內容來自 - 《2019天勤資料結構高分筆記》

1. 兩個順序棧共享乙個int儲存區elem[0, … , maxsize - 1],設計演算法,有入棧和出棧的功能。

初始化 + 建立 + 入棧 + 出棧 + 判滿 + 遍歷

完整**:

#include#define maxsize 100 

using namespace std;

typedef struct

sqtack;

void init(sqtack &st)

int isfull(sqtack st)

void push(sqtack &st, int n, int x) // 入棧

else

} else

cout << "埠非法!" << endl << endl; }}

void pop(sqtack &st, int n, int &x)

} else if(n == 1) }

else

cout << "埠有問題!" << endl << endl;

}void creat(sqtack &st)

cout << endl;

cout << "s0 = " << s0 <= s1; i--)

cout << endl;

}void trace(sqtack st)

else

cout << "為空!" << endl << endl;

cout << "s1:" << endl;

if(st.top[1] != maxsize)

else

cout << "為空!" << endl << endl;

}int main()

sqtack;

void init(sqtack &s)

void push(sqtack &s, int &x)

void pop(sqtack &s, int &x)

}void enqueue(sqtack &s1, sqtack &s2, int x)

push(s1, x);

} else

cout << "佇列已滿!" << endl << endl ;

} else }

void creat(sqtack &s1, sqtack &s2) }

void dequeue(sqtack &s1, sqtack &s2)

else

pop(s2, x);

printf("元素 %-5d已出隊\n\n", x);

4. 迴圈佇列,front、rear作為對頭和隊尾指標,tag = 0為對空、tag = 1為隊非空,這樣 front = rear可作為判斷隊滿的標誌

初始化 + 建立 + 入隊 + 出隊 + 判空 + 判滿 + 遍歷

#include#define num 100

using namespace std;

typedef struct

queue;

void init(queue &l)

int queuefull(queue l)

int queueempty(queue l)

void enqueue(queue &l, int x)

}void dequeue(queue &l)

while(top != -1)

cout << endl << endl;

}int main()

return 0;

}

6. 括號匹配,包括花、方、圓括號,以及單、雙引號必須承兌出現

#include#define num 100

using namespace std;

typedef struct

sqtack;

void init(sqtack &st)

void gettop(sqtack st, char &x)

void push(sqtack &st, char x)

void pop(sqtack &st)

int isempty(sqtack st)

void check(char s)

else if(*p == 34)

else

':gettop(st,ch);

if(ch == '

} p++;

} if(isempty(st))

cout << "括號匹配!" << endl << endl;

else

cout << "括號不匹配!" << endl << endl;

7. 求根號的迭代公式

兩個方向:1迭代 與 2非迭代

迭代**:

非迭代**:

#includeusing namespace std;

void sq(double a, double p, double e)

cout << "p = " << p << endl << endl;

}int main()

return 0;

}

8. 棧出入列舉

牛客給定乙個正整數n代表火車數量,0輸入:

31 2 3

輸出:

1 2 3

1 3 2

2 1 3

2 3 1

3 2 1

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...

資料結構 棧和佇列

本章的基本內容是 兩種特殊的線性表 棧和佇列 從資料結構角度看,棧和佇列是操作受限的線性表,他們的邏輯結構相同。從抽象資料型別角度看,棧和佇列是兩種重要的抽象資料型別。p棧 限定僅在表的一端進行插入和刪除操作的線性表。p允許插入和刪除的一端稱為棧頂,另一端稱為棧底。p空棧 不含任何資料元素的棧。a ...

資料結構 棧和佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop node stack2.top stack2.pop return node private stack stack1 stack stack2 大家都知道斐波那契數列,現...