将一个数组的各元素插入到链表中,并以升序排列

Posted 午夜的行人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个数组的各元素插入到链表中,并以升序排列相关的知识,希望对你有一定的参考价值。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 struct slist
 4 {
 5     int info;
 6     struct slist *next;
 7 };
 8 int a[8]={35,46,17,80,25,78,66,54};
 9 struct slist *head=NULL;
10 void inlist(struct slist*,int);
11 void outlist();
12 void main()
13 {
14     int i;
15     struct slist *node;
16     for(i=0;i<8;i++){
17         node=(struct slist*)malloc(sizeof(struct slist));
18         inlist(node,a[i]);
19     }
20     outlist();
21     return;
22 }
23 void inlist(struct slist *nd,int value)
24 {
25     nd->info=value;
26     if(head==NULL){
27         head=nd;
28         head->next=NULL;
29     }else{
30         struct slist *cp;
31         cp=head;
32         if(cp->info>value){
33             head=nd;
34             nd->next=cp;
35         }else{
36             while(cp->next!=NULL&&cp->next->info<value){
37                 cp=cp->next;
38             }
39             nd->next=cp->next;
40             cp->next=nd;
41         }
42     }
43     return ;
44 }
45 void outlist()
46 {
47     struct slist *cp=head;
48     while(cp!=NULL){
49         printf("%d\n",cp->info);
50         cp=cp->next;
51     }
52     return ;
53 }

 

以上是关于将一个数组的各元素插入到链表中,并以升序排列的主要内容,如果未能解决你的问题,请参考以下文章

数组链表树存储方式分析

数组链表树存储方式分析

基础结构:链表- 删除排序链表中的重复元素

83. 删除排序链表中的重复元素

经典排序之插入排序

数据结构第三章:不带头结点的单链表操作