| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2382 人关注过本帖
标题:双向链表建立问题
取消只看楼主 加入收藏
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
结帖率:75%
收藏
已结贴  问题点数:8 回复次数:2 
双向链表建立问题
#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 那里出现了问题,但是不知道怎么改,帮忙看下
搜索更多相关主题的帖子: include create 
2016-10-15 10:16
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
收藏
得分:0 
回复 3楼 书生牛犊
嗯,你这个程序可以运行的,可我的程序问题出在哪里呢?
我找到了,在for循环中的
cout<<"继续输入数据(若输入非数字则结束): ";
        p=(Node*)malloc(sizeof(Node));
                p->next=L;
        cin>>p->data;
刚开始没有把L和p联系起来

[此贴子已经被作者于2016-10-15 22:33编辑过]


吾道不孤
2016-10-15 22:02
qweiuy566
Rank: 2
等 级:论坛游民
帖 子:48
专家分:19
注 册:2016-1-27
收藏
得分:0 
回复 3楼 书生牛犊
最近正在学数据结构,望版主多多帮助。

吾道不孤
2016-10-15 22:35
快速回复:双向链表建立问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049950 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved