| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1745 人关注过本帖
标题:这个用c 语言怎么写
取消只看楼主 加入收藏
丫头猫咪
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-3-27
结帖率:25%
收藏
 问题点数:0 回复次数:2 
这个用c 语言怎么写
Description

(线性表)设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法 :(要求用最少的时间和最小的空间)
(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次);
(2) 在单链表将比正整数x小的数按递减次序排列;
Input

输入长度:13

输入数据:4 5 7 7 8 10 11 15 15 16 17 20 20

输入x:10

Output

5

8 7 7 5 4

Sample Input

7
1 2 3 4 5 6 6
4
Sample Output

2
3 2 1
HINT
搜索更多相关主题的帖子: 空间 正整数 线性表 
2017-06-12 12:43
丫头猫咪
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-3-27
收藏
得分:0 
#include<stdio.h>
int main()
{
 struct student
 {
  int num;
  student *next;
 };
 student *p,*q,*s,*ss,*head=NULL;
 int n,a,z,h=0;
 scanf("%d",&n);
 for(a=1;a<=n;a++)
 {
  p=new student;
  if(head==NULL)
   head=p;
  else q->next=p;
  scanf("%d",&p->num);
  q=p;
 }
 q->next=NULL;

 scanf("%d",&z);                           

 p=head;                                    
 for(a=1;a<=n;a++)
 {
  if(z!=0)
  {
   if(p->num==z)
   {
       q=p;
    z=0;
   }
      else
   {
    s=p;
          p=p->next;
   }
  }
  else if(z==0)
  {
   s=p;
   p=p->next;
   if(s->num==p->num)
    h=h;
   else h=h+1;
  }
  
 }
 printf("%d\n",h);
 
 p=head;                                 
 while(p!=q&&h!=0)
 {
  if(p==head)
  {
   s=p->next;
      ss=s->next;
   head=NULL;
   p->next=NULL;
   s->next=p;
   p=s;
  }
  else
  {
   s=ss;
      ss=ss->next;
   s->next=p;
   p=s;
  }
 }
 head=p;

 p=head;                                    
 while(p->next!=NULL)
 {
  p=p->next;
 printf("%d ",p->num);
 }
 return  0;
}
2017-06-12 14:22
丫头猫咪
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-3-27
收藏
得分:0 
会了
2017-06-12 14:23
快速回复:这个用c 语言怎么写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067858 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved