学海网 文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > 小学教育 > 数学 > 2011年河南省基础数据基础

2011年河南省基础数据基础

2011年河南省基础数据基础

1、设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示。
typedef struct node {int data; struct node *next;}lklist;
void intersection(lklist *ha,lklist *hb,lklist *&hc)
{
lklist *p,*q,*t;
for(p=ha,hc=0;p!=0;p=p->next)
{ for(q=hb;q!=0;q=q->next) if (q->data==p->data) break;
if(q!=0){ t=(lklist *)malloc(sizeof(lklist)); t->data=p->data;t->next=hc; hc=t;}
}
}

2、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。现要求采用循环链表结构设计一个算法,模拟此过程。
#include<stdlib.h>
typedef int datatype;
typedef struct node
{datatype data;
struct node *next;
}listnode;
typedef listnode *linklist;
void jose(linklist head,int s,int m)
{linklist k1,pre,p;
int count=1;
pre=NULL;
k1=head; /*k1为报数的起点*/
while (count!=s) /*找初始报数起点*/
{pre=k1;
k1=k1->next;
count++;
}
while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/
{ p=k1; /*从k1开始报数*/
count=1;
while (count!=m) /*连续数m个结点*/
{ pre=p;
p=p->next;
count++;
}
pre->next=p->next; /*输出该结点,并删除该结点*/
printf("%4d",p->data);
free(p);
k1=pre->next; /*新的报数起点*/
}
printf("%4d",k1->data); /*输出最后一个结点*/
free(k1);
}
main()
{linklist head,p,r;
int n,s,m,i;
printf("n=");
scanf("%d",&n);
printf("s=");
scanf("%d",&s);
printf("m=",&m);
scanf("%d",&m);
if (n<1) printf("n<0");
else
{/*建表*/
head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/
head->data=n;
r=head;
for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/
{ p=(linklist)malloc(sizeof(listnode));
p->data=i;
p->next=head;
head=p;
}
r->next=head; /*生成循环链表*/
jose(head,s,m); /*调用函数*/
}
}

3、假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。(15分)
(1)A和D是合法序列,B和C 是非法序列。
(2)设被判定的操作序列已存入一维数组A中。
int Judge(char A[])
//判断字符数组A中的输入输出序列是否是合法序列。如是,返回true,否则返回false。
{i=0; //i为下标。
j=k=0; //j和k分别为I和字母O的的个数。
while(A[i]!=‘\0’) //当未到字符数组尾就作。
{switch(A[i])
{case‘

第1页

TOP相关主题

  • 河南省2011高考分数线
  • 河南省统计年鉴2011
  • 2011年河南省选调生
  • 2011 河南省公务员
  • 河南省2011年分段表
  • 2011河南省两会
  • 2011年河南省统计公报
  • 河南省基础教研室

我要评论

相关文档

  • 2011年河南省基础数据基础

    2011年河南省基础数据基础_韩语学习_外语学习_教育专区。2011年河南省基础数据基础 1、设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)...

  • 2011年河南省基础数据摘要

    2011年河南省基础数据摘要_韩语学习_外语学习_教育专区。2011年河南省基础数据摘要 1、题目中要求矩阵两行元素的平均值按递增顺序排序,由于每行元素个数相等,按平均...

  • 2011年河南省基础数据摘要

    2011年河南省基础数据摘要_韩语学习_外语学习_教育专区。2011年河南省基础数据摘要 1、 二叉树的层次遍历序列的第一个结点是二叉树的根。实际上,层次遍历序列中的...

  • 2011年河南省基础数据摘要

    2011年河南省基础数据摘要_数学_小学教育_教育专区。1、假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O...

  • 2011年河南省数据基础

    2011年河南省数据基础_韩语学习_外语学习_教育专区。2011年河南省数据基础 1、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,...

  • 2011年河南省基础数据高级

    2011年河南省基础数据高级_韩语学习_外语学习_教育专区。2011年河南省基础数据高级 1、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。所谓“破圈...

  • 2011年河南省基础数据要领

    2011年河南省基础数据要领_韩语学习_外语学习_教育专区。2011年河南省基础数据要领 1、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild)...

  • 2011年河南省基础数据高级

    2011年河南省基础数据高级_韩语学习_外语学习_教育专区。2011年河南省基础数据高级 1、设指针变量 p 指向双向链表中结点 A,指针变量 q 指向被插入结点 B,要求给...

  • 2011年河南省基础数据高级

    2011年河南省基础数据高级_韩语学习_外语学习_教育专区。2011年河南省基础数据高级 1、设指针变量 p 指向双向链表中结点 A,指针变量 q 指向被插入结点 B,要求给...

  • 2011年河南省基础数据深入

    2011年河南省基础数据深入_韩语学习_外语学习_教育专区。2011年河南省基础数据深入 1、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边...

站点地图 | 文档上传 | 侵权投诉 | 手机版
新浪认证  诚信网站  绿色网站  可信网站   非经营性网站备案
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.xuehai.net All Rights Reserved.  email
返回顶部