这样建立链表为什么错?

发布网友 发布时间:2022-04-26 13:40

我来回答

1个回答

热心网友 时间:2023-10-09 19:39

#include<stdio.h>
#include<stdlib.h>

typedef char ElemType;

//单链表结构描述
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*LinkList;

//初始化单链表
LinkList InitList(LinkList H) //LinkList已经是指针类型了,指向的内容是结点,所以不需要*H,LinkList H=Node *H
{
H=(LinkList)malloc(sizeof(Node));/*建立头节点*/
H->next=NULL; /*建立空的单链表H*/
return H;
}

LinkList CreatFromHead(LinkList H)
//H是已经初始化好的空链表指针,通过键盘输入表中元素值,利用头插发建单链表H
{
Node *s;
char c;
int flag=1;
while(flag)
{
c=getchar();
if(c!='$')
{
s=(Node*)malloc(sizeof(Node)); /*建立新节点s*/
s->data=c; //s->data=c
s->next=H->next; /*将s节点插入表头*/
H->next=s;
}
else flag=0;
}
return H;
}

//输出表头
void print(LinkList head)
{
LinkList p;
p=head->next;
if(p!=NULL)
do
{
printf("%c\n",p->data);
p=p->next;
}while(p!=NULL);
}

void main()
{
Node *head;
LinkList H,b;
b=InitList(H);
head=CreatFromHead(b);
print(head);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com