好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 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;
} |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|