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

//打印单链表
void print(LinkList &L){
   L=L->next;
    while (L!=NULL){
      printf("%d,\n",L->data);
      L=L->next;
    }
}
在遍历前先过掉头节点不久就好了

wsxzaq 发表于 2021-5-5 17:44

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
注意一下排版好嘛...... 排版这么重要的东西为什么这么多人不在意呢?

反正又不是他自己看
页: [1]
查看完整版本: 单链表避免头结点打印