首页 > 代码库 > HDU 2019 数列有序!
HDU 2019 数列有序!
Time Limit: 1000 MS Memory Limit: 32768 KB
64-bit integer IO format: %I64d , %I64u Java class name: Main
[Submit] [Status] [Discuss]
Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
Sample Input
3 31 2 40 0
Sample Output
1 2 3 4
#include<stdio.h>#include<stdlib.h>struct node{ int num; node *next;};int main(){ int n,m,i; while(scanf("%d%d",&n,&m)!=EOF&&(m!=0||n!=0)) { node * root=(node *)malloc(sizeof(node)); //定义一个头指针 root root->next=NULL; node *p=root; //定义用于连接的指针p for(i=1;i<=n;i++) //依次开辟新空间,存入数据,并且一节一节的连接 { scanf("%d",&p->num); node *temp=(node *)malloc(sizeof(node)); temp->next=NULL; p->next=temp; p=temp; } p=root; while(p->next!=NULL) //这里开始插入数字。 { if(p->next->num>=m) { node *temp=(node *)malloc(sizeof(node)); //为新数字开辟内存。并连接。 temp->num=m; temp->next=p->next; p->next=temp; break; } p=p->next; } p=root; while(p->next!=NULL) //输出链表的数据。最后一节的next指针为空。用来结束。 { if(p==root) printf("%d",p->num); else printf(" %d",p->num); p=p->next; } printf("\n"); } return 0;}/*~~~~~~~~~~~~~~~~~~~还不太会链表 不知道自己哪里错了 过几天看~~~~~~~~~~~~~~~~~~~~~~~~~~*/#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;struct node{ node *next; int num;};int main(){ int n,m; while(scanf("%d%d",&n,&m),n,m) { node *root=(node *)malloc(sizeof(node)); ///定义一个头指针 名为root 给node分配一块空间 node *p=root; ///表头指针 定义一个链接的指针p 指向分配的空间的开始部位 root->next=NULL; ///初始化吧~~~~~~~~~~~~ for(int i=0; i<n; i++) { scanf("%d",&p->num); node *temp=(node *)malloc(sizeof(node)); ///给temp分配一块空间 temp->next=NULL; p->next=temp; p=temp; } p=root; while(p->next!=NULL) { if(p->next->num>m) { node *temp=(node *)malloc(sizeof(node)); ///为新数字开辟内存并链接 temp->num=m; temp->next=p->next; break; } p=p->next; } p=root; while(p->next!=NULL) ///输出链表的数据。最后一节的next指针为空。用来结束。 { if(p==root) printf("%d",p->num); else printf(" %d",p->num); p=p->next; } printf("\n"); } return 0;}
HDU 2019 数列有序!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。