知识大全 计算机应用专业上机考试辅导 --- 数据结构

Posted 整数

篇首语:再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 计算机应用专业上机考试辅导 --- 数据结构相关的知识,希望对你有一定的参考价值。

  编一 C程序 它能读入集合A的一串整数(以 为结束标记 整数个数小于 )

  和集合B的一串整数(以 为结束标记 整数个数小于 ) 计算出A与B的交集

  并以由小到大的次序输出A与B的交集中的所有整数(输入整数时 相邻的两个用空格隔开 为A或B输入时 同一个数可能出现多次 而A与B的交集中同一个数不能出现多次) (注 程序的可执行文件名必须是 e exe)

  */

  //注意调试程序时要多输入重复数据调试;本程序是根据青龙提供的程序改编 消除了重复数据的错误!;

  #include

  #include

  void BuCountbbleSort(int r[] int n)

  //冒泡排序

  int i j k;

  int exchange;

  for(i= ;i<=n;i++)

  

  exchange= ;

  for(j=n ;j>=i;j )

  if(r[j+ ]

  

  k=r[j+1];

  r[j+1]=r[j];

  r[j]=k;

  exchange=1;

  

  if(!exchange)

  break;

  

  

  int BingJi(int m[],int n[],int l[],int Countaa,int Countbb)

  //求集合的并集

  int i=0,j=0,k=0;

  while(i<=Countaa&&j<=Countbb)

  

  if(m[i]

  //如果 m[i]

  l[k]=m[i];

  k++;

  i++;

  //endif

  else if(m[i]>n[j])

  //如果 m[i]>n[j]则取小的值n[j],然后j++;

  l[k]=n[j];

  k++;

  j++;

  //end elseif

  else

  //如果 m[i]==n[j],可以任取一个值,然后i++;j++;

  l[k]=m[i];

  k++;

  i++;

  j++;

  //endelse

  //endwhile

  if(i>Countaa)

  //如果i>Countaa,即数组m[i]中的元数个数较少,

  //则把n[j]中的剩余元素,都付给l[]。tW.wiNgwIT.

  while(j<=Countbb)

  

  l[k]=n[j];

  j++;

  k++;

  //endwhile

  //endif

  if(j>Countbb)

  //如果j>Countbb,即数组n[i]中的元数个数较少,

  //则把m[j]中的剩余元素,都付给l[]。

  while(i<=Countaa)

  

  l[k]=m[i];

  i++;

  k++;

  //endwhile

  //endif

  return k;//返回生成的数组的元数个数

  //end BuCountbbleSort

  int JiaoJi(int m[],int n[],int l[],int Countaa,int Countbb)

  //求集合的交集

  ///////////////////////////////////

  //消除数组m[]中的重复元素

  int w,x,y;

  for(w=0;w<=Countaa;w++)

  

  for(x=w+1;x<=Countaa;x++)

  

  if(m[w]==m[x])

  

  Countaa--;

  for(y=x;y<=Countaa;y++)

  

  m[y]=m[y+1];

  //endfor

  x--;

  //endif

  //endfor

  //endfor

  /*

  //测试消除数组中的重复元素的效果用下列循环输出

  int z;

  for(z=0;z<=Countaa;z++)

  

  printf("%d",m[z]);

  

  printf("\\n");

  */

  //消除结束

  ///////////////////////////////////

  ///////////////////////////////////

  //求交集

  int i=0,j=0,k=0;

  while(i<=Countaa)

  

  for(j=0;j<=Countbb;j++)

  //用集合的第一个元素分别和另一个集合的各元素相比较

  //然后再用第二个元素(直到最后一个元素)和另一个集合的各元素相比较

  if(m[i]==n[j])

  //如果有相同的就保存到l[]中,这样同时消掉了n[]中的重复元素

  l[k]=m[i];

  k++;

  break;

  //endif

  //endfor

  i++;

  //endwhile

  //求交集结束

  //////////////////////////////////

  return k;

  

  void main()

  

  int a[1000], b[1000],c[2000];

  int exchange=0;

  int i,CountA,CountB,CountC;

  printf("input a\\n");

  for(i=0;i<=1000;i++)

  

  scanf("%d",&a[i]);

  if(a[i]==-9999)

  break;

  //endfor

  CountA=i-1;

  BuCountbbleSort(a,CountA);//先将集合A排序

  printf("\\ninput b\\n");

  for(i=0;i<=1000;i++)

  

  scanf("%d",&b[i]);

  if(b[i]==-9999)

  break;

  //endfor

  CountB=i-1;

  BuCountbbleSort(b,CountB);//集合B排序

  // CountC=BingJi(a,b,c,CountA,CountB);

  CountC=JiaoJi(a,b,c,CountA,CountB);

  printf("\\n\\n");

  for(i=0;i<=CountC-1;i++)

  

  printf("%d ",c[i]);

  

  printf("\\n");

  

  编一 C程序,它能根据读入的数据构造有向图G,并输出G的DFS遍历序列(从V0开始),图的输入形式为n V0 Vi0 V1 Vi1 V2 Vi2...Vi Vin -1 -1(-1,-1为输入结束标记,其余的值都>=0且 n>0。

  (注:程序的可执行文件名必须是 e3.exe)

  #include

  typedef enum False,True Boolean;

  int G[100][100];

  int n;

  void CreatG() /*建立图的邻接矩阵G[][]*/

  int i,j;

  printf("Input the number of the node:");

  scanf("%d",&n);

  printf("\\n");

  for (i=0;i

  for (j=0;j

  G[i][j]=0;

  do

   scanf("%d %d",&i,&j);

  G[i][j]=1;

  while ((i!=-1)&&(j!=-1));

  

  void TopSort() /*拓扑排序,输出拓扑序列*/

   int i,j;

  int degree[100]; /*按照无前驱顶点优先思想,degree[]存放个节点的入度.*/

  Boolean visited[100],flag=True;

  printf("The Topolgical Order as follow:");

  for (i=0;i

   degree[i]=0;

  visited[i]=False;

  

  printf("\\n");

  while(flag==True)

  

  for (i=0;i

  for (j=0;j

  degree[i]=G[j][i]+degree[i];

  i=0;

  while ((i

  if (i

  printf(" %d",i);

  visited[i]=True;

  for(j=0;j

  G[i][j]=0; degree[j]=0;

  

  else flag=False;

  

  

  main()

   CreatG();

  TopSort();

  

cha138/Article/program/sjjg/201311/23612

相关参考

知识大全 数据结构 4.12 作业排队问题

  希赛教育计算机专业考研专业课辅导招生  希赛教育计算机专业考研专业课辅导视频  希赛教育计算机考研专业课在线测试系统  在应用程序中队列通常用以模拟排队情境假设n=当前队列中存放的是第行的值计算第

知识大全 数据结构与算法设计自学考试大纲[1]

数据结构与算法设计()自学考试大纲一课程的性质及其设置目的课程的性质地位与任务  数据结构是研究程序设计中计算机的操作对象以及它们之间的关系和运算的一门学科本课程是计算机及应用专业(独立本科段)的专业

知识大全 计算机二级C语言上机考试如何通过啊

计算机二级C语言上机考试如何通过啊?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!计算机二级C语言

知识大全 北大“数据结构”上机考试题

  求拓朴排序后结果及用矩阵表示输入形式为n(就是上机练习题上的哪个题不过多加了一个用矩阵表示)  输入一串整数以相反次序输出  第题我做的答案是这样的第题太简单就不用了  //有点未加判断矩阵输出及

知识大全 北大04年“数据结构”上机考试题

  求拓朴排序后结果及用矩阵表示……输入形式为n……(就是上机练习题上的哪个题不过多加了一个用矩阵表示)……  输入一串整数以相反次序输出  第题我做的答案是这样的第题太简单就不用了  //有的未加判

知识大全 北大自考数据结构上机考试复习总结[1]

  数据结构练习题  编一C程序它能根据读入的数据构造有向图G并输出G的邻接矩阵和DFS遍历序列(从V开始)图的输入形式为nViVjViVjViVj……VimVjm(为输入结束标记)它们都是整数且&g

知识大全 北大“数据结构”上机考试题(04年11月18)

  求拓朴排序后结果及用矩阵表示……输入形式为n……(就是上机练习题上的哪个题不过多加了一个用矩阵表示)……  输入一串整数以相反次序输出  第题我做的答案是这样的第题太简单就不用了  //有的未加判

知识大全 北大自考数据结构上机考试复习总结[2]

编一C程序它能对输入的一串整数(不多于个以为结束标记)到数组a中再对a的元素进行直接插入排序(从小到大排序)输出排序结果和所用关键字比较次数(输入时两个相邻的整数用空格隔开)  (注程序的可执行文件名

知识大全 北大自考数据结构上机考试复习总结[3]

编一C程序它能读入一串(n个)整数(以为结束标记)并判断第个整数在后(n)个整数中出现的次数再输出该次数(输入时两个相邻的整数用空格隔开)  (注程序的可执行文件名必须是eexe存于你的账号或其deb