| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1101 人关注过本帖
标题:单链表的遍历链表求解(程序不断生成最后输入的结点)
只看楼主 加入收藏
EMMMM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-9-16
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:2 
单链表的遍历链表求解(程序不断生成最后输入的结点)
编译环境:VS2017
代码如下:
#include<stdio.h>  
#include<malloc.h>  
#include<stdbool.h>
typedef struct Node
{
    int data;
    struct Node *next;
}LNode,*LinkList;
LinkList creat_list()
{
    int length, i;
    printf("Please the list length:\n");
    scanf_s("%d", &length);
    LinkList head = (LNode*)malloc(sizeof(LNode));
    LinkList p = (LNode*)malloc(sizeof(LNode));
    head->next = NULL;
    LinkList rear = head;
    for (i = 0; i < length; i++)
    {
        int value;
        printf("Please input the value on %d:   ", i + 1);
        scanf_s("%d", &value);
        p->data = value;
        p->next = NULL;
        rear->next = p;
        rear = p;
    }
    return head;
}
void traverse(LinkList head)
{
    LinkList p = head->next;
    while (p != NULL)
    {
        printf("%d   ", p->data);
        p = p->next;
    }
    printf("\n");
}
int main()
{
    LinkList L = creat_list();
    traverse(L);
    return 0;
}
错误是比如我输入长度为2,第一个结点是1,第二个结点是2,程序就会不断的输出2并且不停,我看了好长时间也不知道哪里出现了问题,求各位指点一下,十分感谢
搜索更多相关主题的帖子: 结点 int next printf value 
2017-09-16 17:54
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:20 
#include<stdio.h>
#include<malloc.h>
#include<stdbool.h>

typedef struct Node
{
    int data;
    struct Node *next;
} LNode,*LinkList;

LinkList creat_list()
{
    int length, i;
    printf("Please the list length:\n");
    scanf("%d", &length);
    LinkList head=NULL, p;
    for (i=0; i<length; ++i)
    {
        if ((p=(LinkList)malloc(sizeof(LNode))) != NULL)
        {
            printf("Please input the value on %d: ", i+1);
            scanf("%d", &p->data);
            p->next = head;
            head = p;
        }
    }
    return head;
}

void traverse(LinkList head)
{
    LinkList p = head;
    while (p != NULL)
    {
        printf("%d   ", p->data);
        p = p->next;
    }
    printf("\n");
}

int main()
{
    LinkList L = creat_list();
    traverse(L);
    return 0;
}
2017-09-16 19:54
EMMMM
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-9-16
收藏
得分:0 
回复 2楼 吹水佬
谢谢您了
2017-09-16 21:02
快速回复:单链表的遍历链表求解(程序不断生成最后输入的结点)
数据加载中...
 
   



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

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