判断回文(栈,队列)

#include <iostream>
#include <cstdio>
using namespace std;
struct list{
    int data;
    list *next;
};
class Queue{
    list *ptrf,*ptrb;
public:
    Queue(){
        ptrf = ptrb = NULL;
    }
    void enqueue(int);
    int dequeue();
};
void Queue::enqueue(int x) {
    list *newnode = new list;
    newnode->data = x;
    if(ptrb == NULL)  ptrf = ptrb = newnode;
    else {
        ptrb->next = newnode;
        ptrb = newnode;
    }
}

int Queue::dequeue() {
    list *tmp;
    int value;
    value = ptrf->data;
    tmp = ptrf;
    ptrf = ptrf->next;
    delete tmp;
    return value;
}

//栈操作类
class Stack{
    list *ptr;
public:
    Stack(){
        ptr = NULL;
    }
    void push(int i);
    int pop();
    int empty(){
        return(ptr==NULL);
    }

};

void Stack::push(int x) {
    list *newnode = new list;
    newnode->data = x;
    newnode->next = ptr;
    ptr = newnode;

}

int Stack::pop() {
    list *top;
    int value;
    value=ptr->data;
    top = ptr;
    ptr = ptr->next;
    delete top;
    return value;
}


int main() {
    //测试队列  测试ok
//    Queue A;
//    int arr[] = {3,12,8,9,11};
//    cout << "入队顺序:";
//    for(int i=0;i<5;i++){
//        cout<<arr[i]<<" ";
//        A.enqueue(arr[i]);
//    }
//    cout<<endl<<"出队顺序:";
//    for(int i=0;i<5;i++){
//        cout<<A.dequeue()<< " ";
//
//    }
//    cout<<endl;

    //测试栈 ok
/*    Stack A;
    int arr[] = {5,2,8,1,4,3,9,7,6};
    cout<<"进栈顺序:";
    for(int i=0;i<5;i++){
        cout<<arr[i]<<" ";
        A.push(arr[i]);
    }

    cout<<endl<<"出栈顺序:";
    for(int i=0;i<5;i++){
        cout<<A.pop()<< " ";

    }

    return 0;*/

    Stack S;
    Queue Q;
    char ch;
    cout << "输入数据:";
    while((ch=getchar()!='.')){
        S.push(ch);
        Q.enqueue(ch);
    }

    while(!S.empty() && S.pop() == Q.dequeue());
    if(S.empty()) cout<<"输入的是回文数据"<<endl;
    else cout<<"输入的不是回文数据"<<endl;

    return 0;
}



//李春宝 p100  todo 结果不正确 2020.02.29

全部评论

相关推荐

11-17 23:00
南昌大学 Java
我要娶个什么名:10元一天 0元提成😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务