吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1632|回复: 4
收起左侧

[求助] 单链表避免头结点打印

[复制链接]
163585580 发表于 2021-5-5 17:12
本帖最后由 163585580 于 2021-5-5 17:13 编辑

求助各位大佬这是我定义的单链表,发现不管是头插法还是尾插法(这里用的是头插法)打印的时候都会出现头结点的脏数据
输出为:

哈哈哈weqq1212,
46470144,
12,
21,
15,
63,

请问怎么改代码才能避免头结点的也被打印出来?


#include "demo2.h"
#include <stdio.h>
#include <malloc.h>

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

//初始化一个带头结点的单链表
bool InitList(LinkList &L){
    L=(
LNode *)malloc(sizeof(LNode));
    if(L==NULL){
        
return false;
    }
    L->
next=NULL;
    return true;
}

//尾插法建立单链表,插到它的后面
bool ListInsert(LinkList &L, int i,int e){
   
if (i<1){
        
return false;
    }
   
LNode *p;
    int j=0;
    p=L;
    //找到第i-1个结点
    while (p!=NULL&&j<i-1){
        p=p->
next;
        j++;
    }
   
if(p==NULL){
        
return false;
    }
   
LNode *s=(LNode *)malloc(sizeof(LNode));
    s->data=e;
    s->next=p->next;
    p->next=s;
    return true;
}
//头插法建立单链表,
LinkList list_HeadInsert(LinkList &L){
   
LNode *s;
    int x;
    L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    scanf("%d",&x);
    //每次都插在头指针的后面
    while (x!=99999){
        s=(
LNode *)malloc(sizeof(LNode));
        s->data=x;
        s->next=L->next;
        L->next=s;
        scanf("%d",&x);
    }
   
return L;
}
//打印单链表
void print(LinkList &L){
   
while (L!=NULL){
        printf(
"%d,\n",L->data);
        L=L->next;
    }
}

int main(){
    printf(
"哈哈哈weqq1212\n");
    LinkList L;
    InitList(L);
    ListInsert(L,1,12);
    ListInsert(L,2,21);
    ListInsert(L,3,15);
    ListInsert(L,4,63);
    ListInsert(L,7,42);
    ListInsert(L,6,63);
    print(L);
    return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lyl610abc 发表于 2021-5-5 17:30
[C] 纯文本查看 复制代码
//打印单链表
void print(LinkList &L){
     L=L->next;
    while (L!=NULL){
        printf("%d,\n",L->data);
        L=L->next;
    }
}

在遍历前先过掉头节点不久就好了
wsxzaq 发表于 2021-5-5 17:44
[C++] 纯文本查看 复制代码
void print(LinkList &L){
	LNode * current = L->next;

	while (current)
	{
		printf("%d,\n", current->data);
		current = current->next;
	}
}
pumishuo 发表于 2021-5-5 18:55
注意一下排版好嘛...... 排版这么重要的东西为什么这么多人不在意呢?
QingYi. 发表于 2021-5-5 19:30
pumishuo 发表于 2021-5-5 18:55
注意一下排版好嘛...... 排版这么重要的东西为什么这么多人不在意呢?

反正又不是他自己看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表