单链表问题
#include<stdio.h>#include<stdlib.h>
#define typedata int
typedef struct Node
{
typedata data;
struct Node* next;
}Node,*linklist;
void Head_Inint(linklist *L) //**建立带有头结点的单链表**//
{
*L=(linklist)malloc(sizeof(Node));
(*L)->next=NULL;
}
void creat_head_list(linklist L) //**头插法建立单链表**//
{
Node* s;
char c;
int flag=1;
while (flag)
{
c=getchar();
if(c=='
运行之时程序会停止运行,不知道是什么原因,请大神指教指教)
{
flag=0;
}
else
{
s=(Node*)malloc(sizeof(Node));//**申请节点**//
s->data=c;
s->next=L->next;//**把L->next的值赋给s->next**//
L->next=s; //**把L->next指向s**//
}
}
}
void creat_tail_linklist(linklist L) //**尾插法建立单链表**//
{
Node *s,*r;
char c;
int flag=1;
r=(Node*)malloc(sizeof(Node));
r=L; //**节点r暂时指向L**//
while(flag)
{
c=getchar();
if(c=='
运行之时程序会停止运行,不知道是什么原因,请大神指教指教)
{
flag=0;
r->next=NULL;
}
else
{
s=(Node*)malloc(sizeof(Node));
s->data=c;
r->next=s;
r=s;
}
}
}
void out_put(linklist L)
{
while(L->next!=NULL)
{
printf("%d",L->data);
L=L->next;
}
}
int main()
{
linklist *L1;
Head_Inint(L1);
printf("请输入:");
creat_tail_linklist(*L1);
}
运行之时程序会停止运行,不知道是什么原因,请大神指教指教 大概改了一下,按照你main函数的要求,应该实现了你想要的结果,楼主对照一下代码就行了;
#include<stdio.h>
#include<stdlib.h>
#define typedata int
typedef struct Node
{
typedata data;
struct Node* next;
}Node,*linklist;
void Head_Inint(linklist *L) //**建立带有头结点的单链表**//
{
*L=(linklist)malloc(sizeof(Node));
(*L)->next=NULL;
}
/*void creat_head_list(linklist *L) //**头插法建立单链表
{
Node* s;
char c;
int flag=1;
while (flag)
{
c=getchar();
if(c=='q')
{
flag=0;
}
else
{
s=(Node*)malloc(sizeof(Node));//**申请节点
s->data=c;
s->next=L->next;//**把L->next的值赋给s->next
L->next=s; //**把L->next指向s
}
}
}*/
void creat_tail_linklist(linklist *L) //**尾插法建立单链表**//
{
Node *s,*r;
char c;
int flag=1;
r=(Node*)malloc(sizeof(Node));
r=*L; //**节点r暂时指向L**//
while(flag)
{
c=getchar();
if(c=='q')
{
flag=0;
r->next=NULL;
break;
}
else
{
s=(Node*)malloc(sizeof(Node));
s->data=c;
r->next=s;
r=s;
}
}
}
void out_put(linklist *L)
{
linklist p;
p = (*L)->next;
while(p)
{
printf("%c",p->data);
p=p->next;
}
}
int main()
{
linklist L1;
Head_Inint(&L1);
printf("请输入:");
creat_tail_linklist(&L1);
out_put(&L1);
return 0;
}
1.函数传值应该是错的 应该传入指针的地址
2.out put函数不对 第一个Ldata没有值 typedy不是这样用的,c是一个char类型不是int ,头插法和尾插法写两个有问题,后面的那个out_put也没用,c==没有明确的结束条件,结构体和函数实参形参传递好像有问题,头指针建议在main函数中建立。 82457097 发表于 2019-4-8 21:13
大概改了一下,按照你main函数的要求,应该实现了你想要的结果,楼主对照一下代码就行了;
老哥 挺厉害的啊{:5_109:} wuliangtdi 发表于 2019-4-8 22:34
老哥 挺厉害的啊
恰好刚学完这里 大家犯的错误几乎都差不多 算是互相学习一下{:10_254:} 82457097 发表于 2019-4-8 22:37
恰好刚学完这里 大家犯的错误几乎都差不多 算是互相学习一下
嘿嘿 一起加油吧{:5_95:}
页:
[1]