天天看點

資料結構——用棧來判斷回文字元串

#include<iostream>

#include<string>

typedef int Status;

using namespace std;

typedef struct StackNode//定義棧

{

char data;

struct StackNode *next;

}StackNode,*LinkStack;

Status InitStack(LinkStack &S)//建立鍊棧

S = NULL;

return 1;

}

Status Push(LinkStack &S, char e)//入棧

StackNode *p;

p=new StackNode;

p->data = e;

p->next = S;

S = p;

Status Pop(LinkStack &S, char &e)//出棧

p = new StackNode;

if (S == NULL)

return 0;

e = S->data;

p = S; S = S->next;

delete p;

int main()

string a;

LinkStack S;//建立鍊棧

cin >> a;//輸入字元串

for (char i : a) //周遊字元串

{

if (i != ' ')//如果字元不為空格,入棧

{

Push(S, i);

}

}

while (1)

char j;

for (char i : a)

Pop(S, j);//出棧

if (i != ' ')//如果字元不為空格,進行比較

{

if (i != j)

{

cout << "不是回文字元串" << endl;

return 0;

}

}

cout << "是回文字元串" << endl;

繼續閱讀