白天的星星️ 2021-09-24 21:57 采纳率: 100%
浏览 74
已结题

采用尾插法创建单链表后输出为空白

//链表的基本设置

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

typedef struct LNode{
    int data;
    struct LNode*next;
}LinkNode;  //单链表的结构体 

//尾插法整体创建单链表函数

void CreatLinkNode(LinkNode*L,int n){
    LinkNode*r;
    L = (LinkNode*)malloc(sizeof(LinkNode));
    L->next = NULL;
    r = L; //尾指针先指向头指针 
    int i;
    LinkNode*s;
    printf("请输入链表内的元素:\n");
    for(i=1;i<=n;i++){
        s= (LinkNode*)malloc(sizeof(LinkNode));
        scanf("%d",&s->data);
        r->next = s;
        r=s;
    }
    r->next =NULL;
}

//输出链表函数部分

void DisPlayLinkNode(LinkNode*L){
    LinkNode*p;
    p = L->next;
    printf("%d\t",p->data);
    while(p!=NULL){
        printf("%d\t",p->data);
        p = p->next;
    }
}

//主函数部分

int main(){
    int n;
    LinkNode L; 
    printf("请输入需要创建多少个结点:\n");
    scanf("%d",&n);
    CreatLinkNode(&L,n); 
    DisPlayLinkNode(&L);
    return 0;
}

错误结果:

img

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-09-24 23:08
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    //#include <stdbool.h>
    typedef struct LNode{
        int data;
        struct LNode*next;
    }LinkNode;  //单链表的结构体
    
    LinkNode* CreatLinkNode(LinkNode*L,int n){  //修改
        LinkNode *r;
        L = (LinkNode*)malloc(sizeof(LinkNode));
        L->next = NULL;
        r = L; //尾指针先指向头指针
        int i;
        LinkNode*s;
        printf("请输入链表内的元素:\n");
        for(i=1;i<=n;i++){
            s= (LinkNode*)malloc(sizeof(LinkNode));
            scanf("%d",&s->data);
            s->next=NULL;   //修改
            r->next = s;
            r=s;
        }
        //r->next =NULL;//修改
        return L;//修改
    }
    
    void DisPlayLinkNode(LinkNode *L){
        LinkNode*p;
        p = L->next;
                              //修改
        while(p!=NULL){
            printf("%d\t",p->data);
            p = p->next;
        }
    }
    
    
    int main()
    {
        int n;
        LinkNode * L;//修改
        printf("请输入需要创建多少个结点:\n");
        scanf("%d",&n);
        L=CreatLinkNode(L,n);//修改
        DisPlayLinkNode(L);//修改
        
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月24日

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab