链表(线性表)
(线性表)设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法 :(要求用最少的时间和最小的空间)
(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次);
(2) 在单链表将比正整数x小的数按递减次序排列;
输入长度:13
输入数据:4 5 7 7 8 10 11 15 15 16 17 20 20
输入x:10
输出
5
8 7 7 5
样例输入
7
1 2 3 4 5 6 6
4
样例输出
2
3 2 1
下面展示一些 内联代码片
。
#include <stdio.h>
#include <stdlib.h>
typedef int ElementType;
typedef int Position;
Position NotFound=-1;
typedef enum {
FALSE,TRUE}Boolean;
typedef struct node {
ElementType data;
struct node* next;
}NODE,*List;
void InitList(List *l)
{
NODE *s;
s=(NODE*)malloc(sizeof(NODE));
if(!s)exit(1);
s->next=NULL;
*l=s;
}
Boolean InsertList(List l,Position pos,ElementType e)
{
NODE *p=l,*s;
int i=0