数据结构问题?

编写一个在顺序表L中按元素值进行顺序查找的LocateElem(L,e)算法,该顺序查找第1个值域与e相等的元素的逻辑位序。若这样的元素不存在,则返回值为0。并为每条语句添加一个注释,解释该语句的功能和作用。

题主你好,过程请参考图,图中源代码也给了。当然,首先放的是正经的方法,后面简述一个不正经的。几个函数和模块:

1、定义两个结构体,一个是链表的链表,为了索引所有的链表弄的,当然,头指针这里多定义了一个数量,也就是量表的长度,这个有没有无所谓。一个是普通的量表,一个元素一个指针

2、输入部分,根据链表数量创建链表的链表,然后再根据每一个链表里元素的数量动态创建。因为我这里是c++环境,cin需要和scanf做个替换

3、反向链表:反向操作也就相当于对每一个元素的指针方向反过来,这一步一定要注意不要丢失了引用,注意结束时候将原来的第一个元素的next指向NULL。我这里p表示当前元素,q是当前开始算第二个元素、m是第三个,因为我们转换过程中需要先将第二个和第三个之间的引用断开,所以要给第三个先引用到。

4、打印链表,为了输出

5、主函数及运行结果




不正经的:

因为是一个一个元素进行输入,正常状态下,我们的流程是:创建一个指针->让已有最后一个元素的next指向这个新指针。那我们要反向,就可以在输入时候处理:新建一个指针->让这个新建指针的next指向已有的第一个,让新输入的元素成为头,这样就在输入时候就已经反过来了

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-09-29
int LocateElem(L,e)
{
int i = 0;
while(i != L.length)//用i的值和顺序表有效长度,作为条件
{
if(L.elem[i] == e)//数组下标累加,判断是否和e相等
return i+1;//如果相等退出函数,并返回逻辑位,
i++;
}
return 0;//执行到这一句代表 i和 L->lengtg的值相等了,有效长度内没有找到和e相等的值
}本回答被网友采纳
第2个回答  2020-12-02

数据结构:计算机存储、组织数据的方式

关于数据结构的问题
1、选择D,因为最坏情况是每次判断a[j]>a[j+1]都成立,由于有两层循环,总次数为(n-1)+(n-2)+...+2+1=n(n-1)\/2=O(n^2)。2、程序是一组命令的集合,算法是设计好的可以解决问题的一组规则,二者不是一种东西。3、一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)。...

关于数据结构的几个问题 判断对与错。也请解释下
13.错的 在顺序存储结构中逻辑上相邻的数据元素在物理地址上也必然相邻

数据结构的一些问题~
2、由于没说一定连通,所以有向图与无向图最少边数均为0 最多的话,有向图为n*(n-1),无向图为n*(n-1)\/2 3、无向图,理论最多边数为(n^2-n)\/4,其中点的数目平均分布在两个连通分量 假定一边为x,则边数为x*(x-1)\/2,另一边就是(n-x)(n-x-1)\/2,两项和取最大值。4...

数据结构的定义问题
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。常用结构:数组、栈、队列、链表、树、图、堆、散列表。重要意义:一般认为,一个数据结...

数据结构问题,求解答,谢谢!
题目告诉了A[1][1]和A[3][3]的存储地址,是想让你推算出A数组的大小。由于A[1][1]的地址是420,所以A[1][0]的地址就是419,还有A[3][3]的地址是446,那么A[3][0]的地址就是443。从A[1][0]到A[3][0],恰好实用了2行,(443-419)\/ 2 = 12,也就是说数组A的大小是A[12]...

数据结构问题:怎么计算?
2、给一个表,顺寻查找就是依次扫描第1、2、3……n个元素,并比较是否与目标值相等,最坏情况下就是扫描到最后一个发现与目标值相等,则比较了n次,查找失败当然也是比较n次发现没有目标值 3、64个元素按大小顺序排列,折半查找时,先取中间的数32与目标值比较:若大于目标值,则取1到32中间的...

数据结构面试常见问题
数据结构面试常见问题 篇1 数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。所以,实际的情况是,企业一般考察一些看起来很基本...

数据结构问题
1.初始化: 根据给定的n个权值{w1,w2,…wn}构成n棵二叉树的集合F={T1,T2,..,Tn},其中每棵二叉树Ti中只有一个带权wi的根结点,左右子树均空。2. 找最小树:在F中选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且至新的二叉树的根结点的权值为其左右子树上根结点的权值之和...

数据结构问题求助
答案为C。当top==0时,栈为空。出栈时,先移动栈顶指针,再取出栈顶指针指向的元素。示意图如下:

数据结构问题 求详解
设栈的顺序存储空间为S(1: m),初始状态为top=m+1,说明栈空时top=m+1;入栈时栈顶指针是减操作。当前栈中的元素为:m+1-20=m-19所以答案C正确

相似回答