c++语法,打印帮助

C++ Syntax, Print Help

本文关键字:帮助 打印 语法 c++      更新时间:2023-10-16

我写了一个小程序

#include <iostream.h>
class node
{
public:
    int value;           //value stored in the node 
    node *next;          //pointer to next node 
    node *prev;          //pointer to previous node 
};
class dlist
{
public:
    node *front;       //pointer to front of list   
    node *back;        //pointer to back of list  
    dlist()
    {
        front=NULL;
        back=NULL;
    }
    void insertFront(int value);             
    void insertBack(int value);
    void removeFront();
    void removeBack();
    void insertBefore(int value,node *nodeB);
    void insertAfter(int value,node *nodeA);
    void removeBefore(node *nodeB);
    void removeAfter(node *nodeA);
    void removeNode(node *newNode);
    void printDListFront();
    void printDListBack();
};
//insert a node before nodeB
void dlist::insertBefore(int value,node *nodeB)    
{
    node *newNode;
    newNode=new node();
    newNode->prev=nodeB->prev;
    newNode->next =nodeB;
    newNode->value =value; 
    if(nodeB->prev==NULL)
    {
        this->front=newNode; 
    }
    nodeB->prev=newNode;
}
//insert a node before the front node 
void dlist::insertFront (int value)
{
    node *newNode;
    if(this->front==NULL)
    {
        newNode=new node();
        this->front=newNode;
        this->back =newNode;
        newNode->prev=NULL;
        newNode->next=NULL;
        newNode->value=value;
    }
    else
    {
        insertBefore(value,this->front );
    }
}
//insert a node after  nodeB
void dlist::insertAfter(int value,node *nodeB)
{
    node *newNode;
    newNode=new node();
    newNode->next= nodeB->next ;
    newNode->prev  =nodeB;
    newNode->value =value;
    if(nodeB->next==NULL)
    {
        cout<<"n "<< endl;
        this->back =newNode; 
    }
    nodeB->next=newNode;
    cout<<"2"<<endl;
}
//insert a node after the last node 
void dlist::insertBack (int value)
{          
    if(this->back==NULL)
    {
        cout<<"insert at back";
        insertFront(value);
    }
    else
    {
        cout<<"insert at back";
        insertAfter(value,this->back  );
    }
}
//remove the front node 
void dlist::removeFront ()
{
    removeNode(this->front);
}
//remove a back node 
void dlist::removeBack  ()
{
    removeNode(this->back);
}
//remove before a node 
void dlist::removeBefore(node *nodeB)
{
    if(nodeB->prev==this->front)
    {
        this->front=nodeB;
        this->front->prev=NULL;
    }
    else
    {
        removeNode(nodeB->prev);
    }
}
//remove after a node 
void dlist::removeAfter(node *nodeA)
{
    if(nodeA->next==this->back)
    {
        this->back=nodeA;
        this->back->next=NULL;
    }
    else
    {
        removeNode(nodeA->next);
    }
}
//remove a perticular node 
void dlist::removeNode(node *nodeToRemove)
{
    if(nodeToRemove==this->front)
    {
        this->front=this->front->next;
        this->front->prev=NULL;
    }
    else if (nodeToRemove==this->back)
    {
        this->back=this->back->prev;
        this->back->next=NULL ;
    }
    else
    {
        nodeToRemove->prev->next=nodeToRemove->next;
        nodeToRemove->next->prev=nodeToRemove->prev;
    }
}
//Print the list from front 
void dlist::printDListFront()
{
    node* curr2;
    curr2= this->front;
    cout<<"n-----n";
    cout<<"Queuen";
    cout<<"-----n";
    //cout<<"size:"<<getQueueSize()<<endl;
    while(curr2!=NULL)
    {
        cout<<" |"<<curr2->value<<"|";
        curr2=curr2->next;
    }
    cout<<endl;
}// print the Double Linked List from front

// print the Double Linked List from backwards
void dlist::printDListBack()
{
    node* curr2;
    curr2= this->back;
    cout<<"n-----n";
    cout<<"Queuen";
    cout<<"-----n";
    //cout<<"size:"<<getQueueSize()<<endl;
    while(curr2!=NULL)
    {
        cout<<" |"<<curr2->value<<"|";
        curr2=curr2->prev;
    }
    cout<<endl;
}// print the Double Linked List from back
int main()
{
    dlist *st ;
    st= new dlist();
    st->insertBack(8); 
    st->printDListFront ();
    st->insertBack(5); 
    st->printDListFront ();
    st->insertBack(6); 
    st->printDListFront ();
    st->insertFront(1) ;
    st->printDListFront ();
    st->insertFront(3) ;
    st->printDListFront ();
    st->insertBack(7); 
    st->printDListFront ();
    st->removeFront();
    st->printDListFront ();
    st->removeBack();
    st->printDListFront ();
} 

现在,我如何让程序显示我的信息如下图所示……(输出)比如如何显示一个空列表?

List created using an empty value of 0.
Empty list:
        Going forwards, I see channel 0
        Going forwards, I see channel 0
        Going forwards, I see channel 0
        Current channel is 0
        Going backwards, I see channel 0
        Going backwards, I see channel 0
        Going backwards, I see channel 0
Single node:
        Going forwards, I see channel 2
        Going forwards, I see channel 2
        Going forwards, I see channel 2
        Current channel is 2
        Going backwards, I see channel 2
        Going backwards, I see channel 2
        Going backwards, I see channel 2
Multiple nodes:
        Going forwards, I see channel 2
        Going forwards, I see channel 3
        Going forwards, I see channel 7
        Going forwards, I see channel 9
        Going forwards, I see channel 10
        Going forwards, I see channel 44
        Going forwards, I see channel 2
        Going forwards, I see channel 3
        Going forwards, I see channel 7
        Going forwards, I see channel 9
        Going forwards, I see channel 10
        Going forwards, I see channel 44
        Current channel is 44
        Going backwards, I see channel 10
        Going backwards, I see channel 9
        Going backwards, I see channel 7
        Going backwards, I see channel 3
        Going backwards, I see channel 2
        Going backwards, I see channel 44
        Going backwards, I see channel 10
        Going backwards, I see channel 9
        Going backwards, I see channel 7
        Going backwards, I see channel 3
        Going backwards, I see channel 2
        Going backwards, I see channel 44
List de-allocated.

您在这里处理的是一个双重链表,从您的问题中我可以理解,您希望在导航或创建节点时显示适当的消息。

要做到这一点,您需要在Main()
中调用的每个函数中插入适当的cout<<语句。