程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程-代碼中有兩條語句看不懂,能解釋一下嗎?

編程-代碼中有兩條語句看不懂,能解釋一下嗎?

編輯:編程綜合問答
代碼中有兩條語句看不懂,能解釋一下嗎?

通過調試發現empty()函數執行了6次,而pop()和dequeue()分別執行了4次,
while(!S.empty()&&S.pop()==Q.dequeue());這條語句到底等價於哪條語句,
return (ptr==NULL);這條語句到底等價於哪條語句?

 #include<iostream>
using namespace std;
struct list
{
    int data;   struct list *next;
};
class Stack
{
    struct list *ptr;
public:
    Stack()
    {
        ptr=NULL;
    }
    void push(int x)//進棧成員函數
    {
        struct list *newnode=new struct list;
        newnode->data=x;
        newnode->next=ptr;
        ptr=newnode;
    }
    int pop()//出棧成員函數
    {
        //struct list *top;
        int value;
        value=ptr->data;
        //top=ptr;
        ptr=ptr->next;
        //delete top;
        return value;
    }
    int empty()
    {
        return (ptr==NULL);//為什麼不能直接寫成return NULL;?
    }
};
class Queue
{
    struct list *ptrf,*ptrb;
public:
    Queue()
    {
        ptrf=ptrb=NULL;
    }
    void enqueue(int x)//進隊成員函數
    {
        struct list *newnode=new struct list;
        newnode->data=x;
        newnode->next=NULL;
        if(ptrb==NULL)
            ptrf=ptrb=newnode;
        else
        {
            ptrb->next=newnode;
            ptrb=newnode;
        }
    }
    int dequeue()//出隊成員函數
    {
        //struct list *tmp;
        int value;
        value=ptrf->data;
        //tmp=ptrf;
        ptrf=ptrf->next;
        //delete tmp;
        return value;
    }
};
void main()
{
    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;
    system("pause");
}


圖片說明

圖片說明

最佳回答:


粘錯了

 while( !S.empty() )
{
    if( S.pop()!=Q.dequeue() ) break;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved