双向链表建立问题
#include<stdio.h>#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct node //循环双向链表
{
int data; //数据
struct node *prior;//前驱
struct node *next; //后继
}Node;
void create(Node *L); //建立双向单链表
main()
{
Node *L; //表头指针
create(L);
}
void create(Node *L) //建立双向单链表
{
Node *p,*q;
q=L;
cout<<"建立单链表,请输入数据: ";
L=(Node*)malloc(sizeof(Node));
cin>>L->data; cout<<endl;
L->prior=L->next=NULL;
for(;;)
{
cout<<"继续输入数据(若输入非数字则结束): ";
p=(Node*)malloc(sizeof(Node));
cin>>p->data;
if(cin.fail()) //cin.fail()函数:如果输入的是int类型,则操作成功,返回假值 0,操作失败,返回真值 1
/* 如果输入的不是数字 */
{ cout<<"输入非数字,单链表建立完成"<<endl;break; }
else
{
q->next=p; p->prior=q;
p->next=L; L->prior=p;
q=p;
}
}
}
可能是最后的 else 那里出现了问题,但是不知道怎么改,帮忙看下