白天的星星️ 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 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?