| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 417 人关注过本帖
标题:链表问题
只看楼主 加入收藏
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
链表问题
#include "stdio.h"
#include "stdlib.h"

typedef struct Lnode
{
    int    data;
    struct    Lnode *next;
}Londe,*LinkList;

void main()
{
    int    i = 0;
    LinkList L,p,q;
    L = (LinkList)malloc(sizeof(Lnode));

    if(L == NULL)
    {
        printf("申请内存空间失败!\n");
        exit(0);
    }

    L->next = NULL;
    q = L;

    while(i < 5)
    {
        p = (LinkList)malloc(sizeof(Lnode));

        if(p == NULL)
        {
            printf("申请内存空间失败\n");
            exit(0);
        }

        p->next = NULL;

        printf("请输入数据:\n");
        scanf("%d",&p->next);
        p->next = q->next;
        q->next = p;
        q = p;
        i++;
    }

    p = L->next;

    while(p)
    {   
        printf("%d",p->data);   
    }
}
我想输入五个数,如:1、2、3、4、5  ,然后用链表的形式输出。但是结果出现了乱码。哪位高手帮忙看看出了什么问题?
搜索更多相关主题的帖子: next 空间 include 
2011-09-14 13:05
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:3 
p->next = NULL;
q->next = p;
q = p;

惟我独行...
2011-09-14 15:42
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
收藏
得分:0 
回复 2楼 statics
你这样改不行啊!具体点啊,拜托
2011-09-14 16:28
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:0 
把这块替换掉
        p->next = q->next;//q->next还没有值就被指针指,显然不对
        q->next = p;
        q = p;

惟我独行...
2011-09-14 16:33
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
收藏
得分:0 
回复 4楼 statics
改了也不行啊!,你运行了程序没有啊?
2011-09-14 17:35
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:3 
为什么不用new要用淘汰的malloc函数呢???

都不结贴我郁闷那!
2011-09-15 00:26
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:3 
程序代码:
#include "stdio.h"
#include "stdlib.h"

typedef struct Lnode
{
    int    data;
    struct    Lnode *next;
}Londe,*LinkList;                    //这里应该是Lnode吧

void main()
{
    int    i = 0;
    LinkList L,p,q;
    L = (LinkList)malloc(sizeof(Lnode));

    if(L == NULL)
    {
        printf("申请内存空间失败!\n");
        exit(0);
    }

    L->next = NULL;
    q = L;

    while(i < 5)
    {
        p = (LinkList)malloc(sizeof(Lnode));

        if(p == NULL)
        {
            printf("申请内存空间失败\n");
            exit(0);
        }

        p->next = NULL;

        printf("请输入数据:\n");
        scanf("%d",&p->next);                    //scanf("%d",&p->data);    数据放在数据成员里
        p->next = q->next;
        q->next = p;
        q = p;
        i++;
    }

    p = L->next;

    while(p)
    {   
        printf("%d",p->data);                //输出的时候,指针要后移,不然一直循环 p=p->next; 另外可以用空格隔开
    }
}


[ 本帖最后由 czsbc 于 2011-9-15 00:42 编辑 ]
2011-09-15 00:40
lqsh
Rank: 2
来 自:山东济南
等 级:论坛游民
帖 子:26
专家分:58
注 册:2011-8-29
收藏
得分:3 
程序代码:
#include "stdio.h";

 #include "stdlib.h";

typedef struct Lnode
{
     int    data;
     struct    Lnode *next;

 }Londe,*LinkList;

void main()

 {
     int    i = 0;
     LinkList L,p,q;//声明两个指针变量
     L = (LinkList)malloc(sizeof(Lnode));

    if(L == NULL)
     {
         printf("申请内存空间失败!\n");
         exit(0);
     }

    L->next = NULL;
     q = L;

    while(i < 5)
     {
         p = (LinkList)malloc(sizeof(Lnode));

        if(p == NULL)
         {
             printf("申请内存空间失败\n");
             exit(0);
         }

        p->next = NULL;

        printf("请输入数据:\n");
       // scanf("%d",&p->next);//这里出错
        scanf("%d",&p->data);
         p->next = q->next;
         q->next = p;
         q = p;
         i++;
     }

    p = L->next;

    while(p)
     {  
        printf("%d",p->data);  
        p=p->next;//指针后移
    }

}
2011-09-16 13:11
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
收藏
得分:0 
回复 7楼 czsbc
我已经明白了,不过还是谢谢你
2011-09-16 14:24
快速回复:链表问题
数据加载中...
 
   



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

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