C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.要求:用数据指针.请写细致 我使用DEV C++6.0 由

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 20:49:11
C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.要求:用数据指针.请写细致 我使用DEV C++6.0 由

C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.要求:用数据指针.请写细致 我使用DEV C++6.0 由
C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)
把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.
要求:用数据指针.
请写细致
我使用DEV C++6.0
由小到大的数列最好是手动输入后排序的

C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.要求:用数据指针.请写细致 我使用DEV C++6.0 由
输入 1 4 3 8 9 2
输出 1 2 3 4 8 9


可以接受输入,但是写死了只能输入6个数字


下面是代码:
#include <stdio.h>
#include <stdlib.h>

/*
把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.
要求:用数据指针.
*/

typedef struct _List {
\x09int value;
\x09struct _List *next;
} List;

void insertList( List ** l ,int v)
{
\x09if( *l==NULL)/*输入链表为空*/
\x09{
\x09\x09*l = malloc(sizeof(List));
\x09\x09memset(*l,0,sizeof(List) );
\x09\x09(*l)->value = v;
\x09}
\x09else
\x09{
\x09\x09List *tmp=*l,*next,*p,*prev=NULL;
\x09\x09while(tmp)
\x09\x09{
\x09\x09\x09next = tmp->next;
\x09\x09\x09if( (!next && tmp->value < v ) || (next && tmp->value<v && next->value > v ) )/*输入值需要插入到当前遍历节点之后*/
\x09\x09\x09{
\x09\x09\x09\x09p= malloc(sizeof(List));
\x09\x09\x09\x09memset(p,0,sizeof(List) );
\x09\x09\x09\x09p->value = v;
\x09\x09\x09\x09tmp->next = p;
\x09\x09\x09\x09p->next = next;
\x09\x09\x09\x09return;
\x09\x09\x09}
\x09\x09\x09else if (tmp->value>v )/*输入值需要插入到当前遍历节点之前*/
\x09\x09\x09{
\x09\x09\x09\x09p= malloc(sizeof(List));
\x09\x09\x09\x09memset(p,0,sizeof(List) );
\x09\x09\x09\x09p->value = v;
\x09\x09\x09\x09if(!prev)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09p->next = tmp;
\x09\x09\x09\x09\x09*l = p;
\x09\x09\x09\x09\x09return;
\x09\x09\x09\x09}
\x09\x09\x09\x09else
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09prev->next = p;
\x09\x09\x09\x09\x09p->next = tmp;
\x09\x09\x09\x09\x09return;
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09\x09else
\x09\x09\x09{
\x09\x09\x09\x09prev = tmp;
\x09\x09\x09\x09tmp = next;
\x09\x09\x09}
\x09\x09}
\x09}
\x09return;
}

int main()
{
\x09int input [6] ;
\x09/*1 4 3 8 9 2*/
\x09List * l = NULL,*tmp;
\x09int i;
INPUT:\x09printf("pls input 6 number:");
\x09i = scanf("%d %d %d %d %d %d",input,input+1,input+2,input+3,input+4,input+5);
\x09if(i!=6)
\x09\x09goto INPUT;
\x09
\x09for(i=0;i<6;++i)
\x09\x09insertList(&l,input[i]);
\x09\x09
\x09tmp = l;
\x09while(tmp)
\x09{
\x09\x09printf("%d ",tmp->value);
\x09\x09tmp = tmp->next;
\x09}
\x09printf("\n");
\x09return 0;
}

C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.要求:用数据指针.请写细致 我使用DEV C++6.0 由 跪求C语言用 穷举法 表示角谷猜想和哥德巴赫猜想 c语言的一题目:分别用冒泡法和选择法对10个数排序! 一、实验目的:掌握常用的查找与排序算法.二、实验内容 1、用简单插入排序法,对关键字值序列为:9,2, C语言中穷举法可以解决哪些问题?举三个以上例子? C语言题目:用缩小区间法对输入的10个整数从小到大排序并输出 怎么用matlab穷举法 输入n个(最多10个)整数,将其排序(从小到大),输入要插入的数,将其的插入到排序后数组中,并输出.用C语言输入输出样例输入:2 5 7 8 9 4 3 1 0 106输出:0 1 2 3 4 5 6 7 8 9 10 C语言用排序法给十个数降序排列 编写C语言程序,有数字1.2.3.4四个数能够组成多少个无重复的三位数,都是多少.希望大神可以用穷举法 用C语言产生一组随机数,并用这组数来比较各种排序方法的效率(答得好给100+的分)每次进入程序生成100个随机数,采用顺序存储结构.比较插入排序,折半排序,冒泡排序和快速排序4种排序.采 直接插入排序法是什么? 直接插入排序法是什么? 问道穷举法是什么?怎么用? 数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的哪个2趟排序后的结果A.选择排序B.冒泡排序C.插入排序D.堆排序 数据序列(12,13,6,5,8,7,20,3,9)只能是下列排序算法中的哪个1趟排序后的结果.A.插入排序 B.选择排序 C.冒泡排序 D.堆排序 数列:97 65 76 13 29 49 58经过一趟排序后得到:65 97 13 76 29 49 58请问使用哪个排序方法A.简单插入排序B.冒泡排序C.2路归并排序D.快速排序 直接插入排序法利用“直接插入排序法”给8,1,2,3,5,7按从大到小的顺序排序,当插入第四个数3时,实际是插入哪两个数之间A、8与1B、8与2C、5与2D、5与1