在有序链表中插入一个数,使其仍然有序(C语言)
程序员文章站
2022-03-13 12:26:47
...
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}linklist;
linklist *createList(){
linklist *head,*p,*q;
int x;
scanf("%d",&x);
p=(linklist *)malloc(sizeof(linklist));
p->data=x;
head=p;
scanf("%d",&x);
while (x!=-1){
q=(linklist *)malloc(sizeof(linklist));
q->data=x;
p->next=q;
p=q;
scanf("%d",&x);
}
p->next=NULL;
return head;
}
linklist *insertList(int n,linklist *head){
linklist *p,*q,*s;
s=(linklist *)malloc(sizeof(linklist));
s->data=n;s->next=NULL;
if (head==NULL) return p;
p=q=head;
while (q!=NULL && q->data < n){
p=q;q=q->next;
}
if (p==head){
s->next=p;head=s;//在头部插入
}
else{
s->next=q;p->next=s;
}
return head;
}
void printList(linklist *head){
linklist *t;
t=head;
if (t==NULL)
printf("这是一个空列表\n");
while (t!=NULL){
printf("%d ",t->data);
t=t->next;
}
printf("\n");
}
int main()
{
linklist *head;
int n;
printf("请输入一组递增数,以-1结束\n");
head=createList();
printList(head);
printf("请输入要插入的数\n");
scanf("%d",&n);
head=insertList(n,head);
printList(head);
system("pause");
return 0;
}
上一篇: 怎么查看mysql的用户名和密码
下一篇: php中define修改函数如何使用?
推荐阅读
-
C语言:保持数列有序:有n(约定n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
-
c语言实现向有序数组中插入一个数并保持有序
-
c语言实现向有序数组中插入一个数并保持有序
-
C语言使用二分法实现在一个有序数组中查找具体的某个数字n
-
001 C语言题库之写一个函数 ,利用二分法查找有序数组中具体某个数
-
C 在有序数组中插入一个数后数组仍有序
-
使用指针插入元素,在有序(升序)的数组中插入一个数,使插入后的数组仍然有序。 要求:自定义函数insert(int *a, int n, int x),用于实现向有序的数组中插入一个元素,并使插入后的
-
在有序链表中插入一个数,使其仍然有序(C语言)