数据结构13,15,16,18,19

原创 2006年06月11日 12:46:00
13
#include <stdio.h>
int s[]={10,15,31,9,20,22,34,37,6,15,42};
int r2[20];
void merge(int low ,int m ,int high,int r[])
{
  int i=low,j=m+1,p=0;
 // int r2[high-low+1];
  while(i<=m && j<=high)
  {
    if(r[i]<=r[j])
    {
      r2[p]=r[i];
      i++;
    }
    else
    {
      r2[p]=r[j];
      j++;
    }
    ++p;
  }
  while(i<=m)
    r2[p++]=r[i++];
  while(j<=high)
    r2[p++]=r[j++];
  for(int t=0;t<p;t++)
  {
    printf("%d ",r2[t]);
  }
}
main()
{
  int temp[20];
  merge(0,2,4,s);
  for(int k1=0;k1<5;k1++)
    temp[k1]=r2[k1];
  merge(5,7,10,s);
  for(int k2=5;k2<11;k2++)
    temp[k2]=r2[k2-5];
  printf("/nThe result is:");
  merge(0,4,10,temp);
}

15#include <stdio.h>
#define stacksize 100
typedef struct{
  int data[stacksize];
  int top;
}Seqstack;
void push(Seqstack *s,int x)
{
  if(s->top==stacksize-1)
  {
    printf("The stack is full");
    return ;
    }
  s->data[++s->top]=x;
}
int pop(Seqstack *s)
{
  return s->data[s->top--];
}
void MultiBaseOutput(int n,int b)
{
  int i;
  Seqstack *s;
  s->top=-1;
  if(n==0)
    printf("0");
  while(n)
  {
     push(s,n%b);
     n=n/b;
   }
   while(s->top!=-1)
   {
     i=pop(s);
     printf("%d",i);
   }
}
main()
{
  MultiBaseOutput(10,2);
}

16
#include <stdio.h>
main()
{
  int A[1000],B[1000],C[1000],lena,lenb,k,temp,tempc[1000],count,temp1;
  printf("Input A:");
  for(int i=0;i<1000;i++)
  {
    scanf("%d",&A[i]);
    if(A[i]==-9999)
    {
      lena=i;
      break;
    }
  }
  printf("Input B:");
  for(int j=0;j<1000;j++)
  {
    scanf("%d",&B[j]);
    if(B[j]==-9999)
    {
      lenb=j;
      break;
     }
   }
  /*--------get A-B ,included same numbers-----------------*/
  k=0;
  for(int t=0;t<lena;t++)
    for(int m=0;m<lenb;m++)
    {
      if(A[t]==B[m])
      {
    tempc[k]=A[t];
     //    printf("%d ",tempc[k]);
    k++;
      }
    }
       // printf("k=%d",k);
   /*------------delete same numbers ------------------------*/
   count=0;
   temp=k;
   for(int x=0;x<temp-1-count;x++)
   {
     for(int y=x+1;y<temp-count;y++)
       if(tempc[x]==tempc[y])
       {
     count++;
     for(int z=y;z<temp-count;z++)
     {
       tempc[z]=tempc[z+1];
     }
     y--;
       }
   }
   temp1=temp-count;
/*----------to sort--------------------*/
  for(int r=0;r<temp1-1;r++)
  for(int c=r+1;c<temp1;c++)
  {
    if(tempc[r]>tempc[c])
    {
      temp=tempc[r];
      tempc[r]=tempc[c];
      tempc[c]=temp;
    }
  }
  /*----------to show-------------------*/
   printf("The results are:/n");
   for(int f=0;f<temp1;f++)
   {
     printf("%d ",tempc[f]);
   }
}

18
#include <stdio.h>
main()
{
  int num[2000],k,temp,times=0;
  for(int i=1;i<2000;i++)
  {
    scanf("%d",&num[i]);
    if(num[i]==-9999)
    {
      k=i;
   //   printf("i=%d",i);
      break;
     }
   }
   for(int j=2;j<k;j++)
   {
    // num[0]=num[j];
    if(num[j]<num[j-1])
    {
      num[0]=num[j];
      temp=j-1;
      do{
    times++;
    num[temp+1]=num[temp];
    temp--;
    }while(num[0]<num[temp]);
      num[temp+1]=num[0];
     }
     else
       times++;
   }
   printf("/n The ordre is:");
   for(int e=1;e<k;e++)
     printf("%d ",num[e]);
   printf("/nThe compaired times are:%d",times);
}


19
#include <stdio.h>
main()
{
  int A[1000],B[1000],C1[1000],C[1000],numa,numb,q,f,temp,temp1,count;
  printf("Please input A(end with -9999):");
  for(int i=0;i<1000;i++)
  {
    scanf("%d",&A[i]);
    if(A[i]==-9999)
    {
      numa=i;
      break;
     }
   }
   printf("Please input B(end with -9999):");
   for(int j=0;j<1000;j++)
   {
     scanf("%d",&B[j]);
     if(B[j]==-9999)
     {
       numb=j;
       break;
     }
   }
   /*find out A-B ,included same nums*/
   q=0;
   for(int r=0;r<numa;r++)
   {
     temp=A[r];
     f=0;
     for(int t=0;t<numb;t++)
     {
       if(temp!=B[t])
     f++;
     }
     if(f==numb)
     {
       C[q]=temp;
 //      printf("%d ",temp);
       q++;
     }
   }
   /*find out different nums in A-B */
   printf("The result of A-B are:");
   temp=q;
   count=0;
   for(int x=0;x<temp-1-count;x++)
   {
     for(int y=x+1;y<temp-count;y++)
       if(C[x]==C[y])
       {
     count++;
     for(int z=y;z<temp-count;z++)
     {
       C[z]=C[z+1];
     }
     y--;
       }
   }
   temp1=temp-count;
   /*---------sort C ------------*/
   for(int d=0;d<temp1;d++)
    for(int m=d+1;m<temp1;m++)
    {
      if(C[d]>C[m])
      {
    temp=C[d];
    C[d]=C[m];
    C[m]=temp;
      }
    }
    for(int u=0;u<temp1;u++)
      printf("%d ",C[u]);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

int a[] = {12,13,12,13,19,18,15,12,15,16,17},要求对数组a进行排序,要求时间复杂度为O(N)

int a[] = {12,13,12,13,19,18,15,12,15,16,17},要求对数组a进行排序,要求时间复杂度为O(N) 根据时间复杂度要求,可以用鸽巢排序。所谓鸽巢排序, 也被称...

数据结构高分笔记 算法2-18~2-19:双向循环链表

http://codeup.cn/problem.php?cid=100000660&pid=9 题目描述 双向链表是在结点中既保存了后一个结点指针又保存了前一个结点指针的链表。这种链表较单向链表...

线性表13|约瑟夫问题 – 数据结构和算法18

线性表13:约瑟夫问题   让编程改变世界 Change the world by program   约瑟夫问题   据说著名犹太历史学家 Josephus有过以下的故事: 在罗...

数据结构---串实现 13-15函数未实现

#include #include /*定义单链表结构体*/ #define MAXSTRLEN 255  #define TRUE 1 #define FALSE 0 struc...

数据结构高分笔记1327||HNCU1327:算法2-13~2-16:静态链表

http://codeup.cn/problem.php?id=1327 题目描述 静态链表是使用顺序存储结构来实现的链表。严蔚敏《数据结构(C语言版)》在介绍静态链表时使用的是一个姓氏列表。 图...

【2015/11/15】 数据结构学习日志_Day16 链表 我的<LinkList.c>

/************************************************************************* > File Name: class.c ...

[Code Complete]Part4:Stament(CH14,15,16,17,18,19)

1.       尽量编写直线型的代码,还需要说明语句之间的代码关系。 Ø  这个例子中,使用参数表示了语句之间的依赖关系。 Ø  希望能够自上而下的进行阅读代码。 Ø&...

石油大学数据结构课件19

  • 2012-03-14 22:06
  • 865KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)