数据结构中创建单链表,并且输出最小值。我写的程序如下,为什么运行有错误呢? 请大神帮忙解答一下。

2025-04-03 11:22:10
推荐回答(1个)
回答1:

#include
#include
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
LinkList Create(LinkList L,int n){
LNode *p,*r;  // 这里将r=L改为r
int i,x;
L=(LinkList)malloc(sizeof(LNode));
r = L;  //加一句r=L;
// scanf("%d",&x);  //这句话不要
for(i=0;i {
scanf("%d",&x);  //这句话提前
p=(LNode *)malloc(sizeof(LNode));
p->data=x;
r->next=p;
      r=p;
}
r->next=NULL;
return L;
}
void SerchMin(LinkList L)  //s输出最小的值
{
LNode *q,*qmin;
q=L->next;
qmin=q;
while(q->next!=NULL){
if(q->next->datadata)
qmin=q->next;
q=q->next;
}
printf("最小值=%d\n",qmin->data); //这里输出的是最小值应该是data

}
void Print(LinkList L)
{
LinkList p = L->next;
while(p)
{
 printf("%d ",p->data);
 p = p->next;
}
}
void main(){
LNode  *L;
L = Create(L,6); //这里写成L=Create(L,6)
Print(L);
SerchMin(L);
}