| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1506 人关注过本帖
标题:链表里这个函数怎么了?
只看楼主 加入收藏
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:3 
链表里这个函数怎么了?
主要是为什么不能输出这个链表?
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
#include<stdio.h>  
#include<stdlib.h>  
  
typedef struct node  
{  
    int data;  
    struct node *next;  
}Linklist; 

Linklist *CreateList_Head(Linklist *L,int n)   
{
    int i;
    Linklist *p;
    L = (Linklist *)malloc(sizeof(Linklist));
    L->next = NULL;
    for(i=n;i>0;--i)
    {
        p = (Linklist *) malloc (sizeof(Linklist));
        scanf("%d",&p->data);
        p->next=L->next;
        L->next=p;
    }
    return L;
}

void Output(Linklist *L)
{
    Linklist *p;
    p=L->next;    //p指向第一个结点,为什么不是“p=L;”因为头结点无数据 
    if(p==NULL)  
        printf("linklist is empty...\n");   
    while(p!=NULL)
    {
        printf("%5d",p->data);
        p=p->next;
    } 
    printf("\n");
}
  
void main()
{
    int m;
    Linklist *L;
    printf("please input m:\n");
    scanf("%d",&m);
    printf("head_insert is :\n");
    CreateList_Head(L,m);
    printf("output the list:\n");
    Output(L);
} 
搜索更多相关主题的帖子: int data next Output printf 
2018-01-25 17:46
白衣柳相
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:142
专家分:168
注 册:2016-12-23
收藏
得分:5 
首先,你的输出即使可以输出也是倒着的对比你输入,因为你采用的是头插法,然后至于你输出为什么是错的呢,因为在创建链表那个函数创建完里头指针已经指向末尾,然后就到输出函数里了,所以你只需要在创建函数加个返回值,然后把返回值用输出函数输出就可以了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,我知道为什么人类们不来回答这个问题了

什么最重要,学习!!!! 我要你们无话可说!我想要的东西自己去拿
2018-01-25 18:47
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
    int data;
    struct node *next;
}Linklist;

Linklist *CreateList_Head(int n)
{
    int i;
    Linklist *L=NULL, *p;
    for(i=n;i>0;--i)
    {
        p = (Linklist *) malloc (sizeof(Linklist));
        scanf("%d",&p->data);
        p->next = L;
        L = p; //头插
    }
    return L;
}

void Output(Linklist *L)
{
    if(L==NULL)
    {
        printf("linklist is empty...\n");
        return;
    }
    for (; L; L=L->next)
        printf("%5d",L->data);
    printf("\n");
}

void main()
{
    int m;
    printf("please input m:\n");
    scanf("%d",&m);
    printf("head_insert is :\n");
    Linklist *L = CreateList_Head(m);
    printf("output the list:\n");
    Output(L);
}
2018-01-25 21:34
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
收藏
得分:0 
谢谢各位啦
2018-01-26 14:42
快速回复:链表里这个函数怎么了?
数据加载中...
 
   



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

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