回 帖 发 新 帖 刷新版面

主题:链队c++实现的指针问题

#include<iostream>
using namespace std;
typedef struct node
{
    int data;
    struct node *next;
}QNode;
typedef struct
{
    QNode *front, *rear;
}LQueue,*link;
link initqueue()
{
    link L;
    L=new(LQueue);
    L->rear=L->front;
    L->front->next=NULL;
    return L;
}
void inqueue(link q)
{
    QNode *p;
    int x,n,i;
    cout<<"请输入数字个数:"<<endl;
    cin>>n;
    cout<<"输入数字:";
    for(i=0;i<n;i++)
    {
    cin>>x;
    p=new(QNode);
    p->data=x;
    p->next=NULL;
    q->rear->next=p;
    q->rear=p;
    }
}
int outqueue(link q)
{
    QNode *p;
    int e;
    if(q->front==q->rear)
        cout<<"error"<<endl;
    p=q->front->next;
    q->front->next=p->next;
    e=p->data;
    free(p);
    if(q->rear==NULL)
        q->front=q->rear;
    return e;

}
main()
{
    link h;
    h=initqueue();
    inqueue(h);

}

回复列表 (共2个回复)

沙发

额  你的是什么问题?

板凳


既然是用c++ 那就要体现他的特点吧 类的封装性 和对象
下面的代码可以看下 希望对你有所帮助
#include<iostream>
using namespace std;
class node
{   public:
    int data;
    node *next;
};
class queue
{
public:
 node *front, *rear;
void initqueue(queue &q)
{
    node *p;
    p=new node;
    p->next=NULL; 
    q.rear=p;
    q.front=p;
    
}
void inqueue(queue &q)
{
    node *p;
    int x,n,i;
    cout<<"请输入元素个数:";
    cin>>n;
    
    for(i=0;i<n;i++)
    {
    cout<<"输入数字"<<i+1<<":";
    cin>>x;
    p=new node;
    p->data=x;
    p->next=q.rear->next;
    q.rear->next=p;
    q.rear=p;
    }
}
void outqueue(queue q)
{
    node *p;p=q.front->next ;
    while(p->next!=NULL)
    { 
        cout<<p->data<<" ";
        p=p->next;
    }
    cout<<p->data;
}
};
main()
{
    queue h;
    h.initqueue(h);
    h.inqueue(h);
    h.outqueue(h);
    

}

我来回复

您尚未登录,请登录后再回复。点此登录或注册