写一个程序,该程序首先根据从键盘输入的若干个结点的值(假设结点的值不可能为0,不要求从小到大输入)建立一个递增有序单链表,并输出该单链表各结点。写出详细代码
时间: 2023-03-15 10:41:35 浏览: 91
#include <stdio.h>
#include <stdlib.h>//定义链表结构体
typedef struct node
{
int data;
struct node *next;
}LinkList;//定义链表头结点
LinkList *CreateList()
{
LinkList *head;
head=(LinkList *)malloc(sizeof(LinkList));
head->next=NULL;
return head;
}//插入节点
LinkList *InsertList(LinkList *head,int data)
{
LinkList *p,*s;
s=(LinkList *)malloc(sizeof(LinkList));
s->data=data;
p=head;
while(p->next!=NULL && p->next->data<data)
p=p->next;
s->next=p->next;
p->next=s;
return head;
}//打印节点
void PrintList(LinkList *head)
{
LinkList *p;
p=head->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}int main()
{
LinkList *head;
int data;
head=CreateList();
printf("请输入结点的值:");
scanf("%d",&data);
while(data)
{
head=InsertList(head,data);
scanf("%d",&data);
}
printf("结点值为:");
PrintList(head);
return 0;
}
阅读全文