2024年吉林省基础数据入门

发布 2023-12-23 12:50:03 阅读 1945

1、设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。

2、假设以i和o分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由i和o组成的序列,称可以操作的序列为合法序列,否则称为非法序列。(15分)

1)a和d是合法序列,b和c 是非法序列。

2)设被判定的操作序列已存入一维数组a中。

int judge(char a)

/判断字符数组a中的输入输出序列是否是合法序列。如是,返回true,否则返回false。

i=0i为下标。

j=k=0j和k分别为i和字母o的的个数。

while(a[i]!=0’) 当未到字符数组尾就作。

switch(a[i])

case‘i’: j++;break; /入栈次数增1。

case‘o’: k++;if(k>j)

i++;不论a[i]是‘i’或‘o’,指针i均后移。}

if(j!=k)

else //算法结束。

3、二部图(bipartite graph) g=(v,e)是一个能将其结点集v分为两不相交子集v 1和v2=v-v1的无向图,使得:v1中的任何两个结点在图g中均不相邻,v2中的任何结点在图g中也均不相邻。

1).请各举一个结点个数为5的二部图和非二部图的例子。

2).请用c或pascal编写一个函数bipartite判断一个连通无向图g是否是二部图,并分析程序的时间复杂度。设g用二维数组a来表示,大小为n*n(n为结点个数)。请在程序中加必要的注释。

若有必要可直接利用堆栈或队列操作。【

4、我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置(下标)。用j 记住局部平台的起始位置,用i指示扫描b数组的下标,i从0开始,依次和后续元素比较,若局部平台长度(i-j)大于l时,则修改最长平台的长度k(l=i-j)和其在b中的起始位置(k=j),直到b数组结束,l即为所求。

void platform (int b[ ]int n)

/求具有n个元素的整型数组b中最长平台的长度。

l=1;k=0;j=0;i=0;

while(i //局部最长平台。

i++;j=i新平台起点。

printf(“最长平台长度%d,在b数组中起始下标为%d”,l,k);

// platform

2019吉林省数据要领基础

1 编程实现单链表的就地逆置。23 在数组 a 1.n 中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个。2 在有向图g中,如果r到g中的每个结点都有路径可达,则称结点r为g的根结点。编写一个算法完成下列功能 1 建立有向图g的邻接表存储...

2024年浙江省数据库入门基础

1 设指针变量p指向双向链表中结点a,指针变量q指向被插入结点b,要求给出在结点a的后面插入结点b的操作序列 设双向链表中结点的两个指针域分别为llink和rlink 2 本题应使用深度优先遍历,从主调函数进入dfs v 时,开始记数,若退出dfs 前,已访问完有向图的全部顶点 设为n个 则有向图有...

2024年浙江省数据库入门基础

1 设指针变量p指向双向链表中结点a,指针变量q指向被插入结点b,要求给出在结点a的后面插入结点b的操作序列 设双向链表中结点的两个指针域分别为llink和rlink 2 本题应使用深度优先遍历,从主调函数进入dfs v 时 开始记数,若退出dfs 前,已访问完有向图的全部顶点 设为n个 则有向图有...