判斷回文數(較麻煩)(c 資料結構 棧 佇列)

2021-08-28 09:37:17 字數 1269 閱讀 9541

題目:回文是指正讀反讀均相同的字串行,如「abba」、「abdba」均是回文,但「good」不是回文。

思想:字元數為偶數時,前半部分入棧,後半部分入隊;字元為奇數時,用getchar接收中間的字元,其餘的按偶數處理。

**如下:

#include#define maxsize 100

#define ok 1

#define error 0

using namespace std;

typedef char elemtype;

typedef int status;

typedef struct stacknode/*棧*/

stacknode, *linkstack;

/*佇列*/

typedef struct

sqquene;

status initqueue(sqquene &q)/*佇列的初始化*/

status initstack(linkstack &s)/*棧的初始化*/

status push(linkstack &s, elemtype e)/*入棧*/

status enqueue(sqquene &q, elemtype e)/*入隊*/

elemtype pop(linkstack &s)/*彈出棧頂元素*/

elemtype dequenue(sqquene &q)/*出隊*/

status stackempty(linkstack s)/*判斷是否棧空,是返回1,否返回0*/

elemtype gethead(sqquene q)

status gettop(linkstack s)/*獲取棧頂元素的值,不修改指標*/

void printstack(linkstack s)/*輸出棧裡的元素*/

}status matchingstack(linkstack &s)/*匹配棧的棧頂元素和佇列的隊頭*/

int main()

for (int i = 0; i < num / 2; i++)

}if (num % 2 == 1)

getchar();

for (int i = 0; i < num / 2; i++)

}//int count = 0;

elemtype e,f;

while (!stackempty(s))

{ //count++;

e = pop(s);

f = dequenue(q);

//cout << e<(ps:方法很麻煩)

回文判斷 資料結構 棧

試編寫乙個演算法,判斷一次讀入的乙個以 結束符的字母序列是否為形容序 列1 序列2 模式的字串行。其中序列1 和序列2都不含字元 且序列2是序列1的你序列。列入,a b b a 時屬於該模式的字串行,而 1 3 3 1 不是 include include include typedef struc...

資料結構 判斷回文數

棧的基本應用 判斷回文數 include include include include define stack init size 100 儲存空間初始分配量 define stack increasement 10 using namespace std typedef struct sqst...

回文數 (棧)資料結構

回文數 棧 由於輸入的乙個回文數可能無窮大,所以要求使用單鏈表儲存該數。問題分析 將使用者輸入的數以乙個單鏈表的方式儲存。從頭掃瞄該單鏈表,將前面的一半元素入棧,若元素的總個數為奇數,則跳過中間的那個元素,然後開始迴圈 邊退棧邊在單鏈表中後移指標,若當前棧頂元素與單鏈表中當前節點的值域不相等,則退出...