| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2002 人关注过本帖
标题:单链表(尾插入)创建链表时的问题
取消只看楼主 加入收藏
卡卡3315
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2019-6-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
单链表(尾插入)创建链表时的问题
程序代码:
#include<stdio.h>
#include<stdlib.h>

typedef struct student{
    int num;
    struct student *next;
}Node;

typedef struct _List{
    Node* head;
}List;//结构用来存储头指针 

void add(List *Plist,int number);//创建链表的函数 
void print(List *Plist);//遍历链表的函数 

int main(void)
{   List list;
    list.head = NULL;
    int number;
    do{
        scanf("%d",&number);
        if(number!=-1){
            add(&list,number);
        }
    }while(number!=-1);
    printf("遍历整个链表\n"); 
    print(&list);//打印整个链表
}
void print(List *Plist)
{   Node *P = NULL;
    for(P = Plist->head; P; P = P->next){
        printf("%d  ",P->num);
    }
    printf("\n");
}
void add(List *Plist,int number)
{
    Node *P = (Node*)malloc(sizeof(Node));
    P->num = number;
    P->next = NULL;
    Node *last = Plist -> head;(这里我原本写的是Node *last = NULL;)
    if(last){
        while (last->next){
            last = last->next;
        }
        last->next = P;
    } else {
        Plist->head = P;
    }
}



在代码中标记的地方, Node *last = Plist -> head; 这一行我原本写的是Node *last = NULL;,因为在main里面list.head就是NULL,反正都是NULL为什么不能直接给Node *last赋上NULL呢

代码结果如下:

图片附件: 游客没有浏览图片的权限,请 登录注册

这个是错误的结果,遍历只显示最后一个

图片附件: 游客没有浏览图片的权限,请 登录注册

正确的是显示全部的

忘了free了

[此贴子已经被作者于2020-4-10 23:41编辑过]

搜索更多相关主题的帖子: List Node head number NULL 
2020-04-10 23:39
快速回复:单链表(尾插入)创建链表时的问题
数据加载中...
 
   



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

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