本文主要是介绍2121 数据结构实验之链表六:有序链表的建立 【纯插排】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据结构实验之链表六:有序链表的建立
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。
输入
第一行输入整数个数N;
第二行输入N个无序的整数。
第二行输入N个无序的整数。
输出
依次输出有序链表的结点值。
示例输入
6 33 6 22 9 44 5
示例输出
5 6 9 22 33 44
提示
#include <stdio.h>struct n
{int num;struct n *next;
};int main()
{int sn,t;n *head = new n;n *tail,*tmp;head->next = NULL;tail = head;scanf ("%d",&sn);if (sn != 0){scanf ("%d",&head->num);t = sn - 1;while (t--){tmp = new n;scanf ("%d",&tmp->num);tmp->next = NULL;n *p = head;while (p->next != NULL && p->next->num < tmp->num){p = p->next;}if (p == head && tmp->num < head->num){tmp->next = head;head = tmp;}else{tmp->next = p->next;p->next = tmp;}}}tmp = head;while (tmp != NULL){printf ("%d",tmp->num);if (tmp->next != NULL)printf (" ");elseprintf ("\n");tmp = tmp->next;}return 0;
}
这篇关于2121 数据结构实验之链表六:有序链表的建立 【纯插排】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!