猿问

谁帮我看下插入函数哪有问题,谢谢了

#include<stdio.h>
#include<malloc.h>
typedef struct node{
int data;
struct node * next;
}Node;
//建立循环单链表
Node * creat(Node * head){
Node *p,*q;
int a;
char ch;
head=(Node*)malloc(sizeof(Node));
//头节点中不存放元素
q=head;
ch='*';
printf("\n请输入链表数据,以?结束\n");
while(ch!='?'){
scanf_s("%d",&a);
p=(Node*)malloc(sizeof(Node));
p->data=a;
q->next=p;
q=p;
ch=getchar();
}
q->next=head;
return head;
}
//打印数据表
void Print(Node * head){
Node*q;
q=head->next;
printf("数据表元素为:\n");
while(q!=head){
printf("%d ",q->data);
q=q->next;
}
printf("\n");
}

void Insert(Node*head,int x){
Node*s,*p,*q;
p=head->next;
q=head;
s=(Node*)malloc(sizeof(Node));
s->data=x;
while(p!=head){
if(x<(p->data)){
s->next=p;
q->next=s;
}else{
q=p;
p=p->next;
}
}
}

int main(){
Node*sq;
int j;
sq=(Node*)malloc(sizeof(Node));
sq=creat(sq);
Print(sq);
printf("请输入要插入的元素:");
scanf_s("%d",&j);
Insert(sq,j);
Print(sq);
return 0;
}

慕标7193633
浏览 698回答 1
1回答
随时随地看视频慕课网APP
我要回答