高分——数据结构题

2-2 顺序表的插入和删除要求仍然保持各个元素原来的次序。设在等概率情形下, 对有127个元素的顺序表进行插入, 平均需要移动多少个元素? 删除一个元素, 又平均需要移动多少个元素?

2-5 试设计一个实现下述要求的Locate运算的函数。设有一个带表头结点的双向链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次Locate (L, x)操作时,令元素值为x的结点的访问频度freq加1,并将该结点前移,链接到与它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。

如果是程序要求完整程序,如果是问答题,请给出数字答案的详细解释。谢谢

2.2若设顺序表中已有n个元素,又设插入火删除表中各元素的概率相等,则在插入是有n+1
个插入位置每个位置插入的概率为1/(n+1),在删除时有n个删除位置,每个位置删除的概率为1/n
。根据上述推导,插入时平均移动127/2=63.5个元素,删除时平均移动(127-1)/2=63个元素.
2.5#include <iostream.h> //双向循环链表结点的构造函数
DblNode (Type value, DblNode<Type> *left, DblNode<Type> *right ) :
data ( value ), freq ( 0 ), lLink ( left ), rLink ( right ) { }
DblNode (Type value ) :
data ( value ), freq ( 0 ), lLink ( NULL ), rLink ( NULL ) { }

template <class Type>
DblList<Type> :: DblList ( Type uniqueVal ) {
first = new DblNode<Type>( uniqueVal );
first→rLink = first→lLink = first; //创建表头结点
current = NULL;
cout << "开始建立双向循环链表:\n";
Type value; cin >> value;
while ( value != uniqueVal ) { //每次新结点插入在表头结点后面
first→rLink = new DblNode<Type>( value, first, first→rLink );
cin >> value;
}
}

template <class Type>
void DblList<Type> :: Locate ( Type & x ) {
//定位
DblNode<Type> *p = first→rLink;
while ( p != first && p→data != x ) p = p→rLink;
if ( p != first ) { //链表中存在x
p→freq++; //该结点的访问频度加1
current = p; //从链表中摘下这个结点
current→lLink→rLink = current→rLink;
current→rLink→lLink = current→lLink;
p = current→lLink; //寻找从新插入的位置
while ( p != first && current→freq > p→freq )
p = p→lLink;
current→rLink = p→rLink; //插入在p之后
current→lLink = p;
p→rLink→lLink = current;
p→rLink = current;
}
else cout<<"Sorry. Not find!\n"; //没找到
}
照着资料打出来的
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-03
1
a.对第一个结点操作一致,b对空和非空表操作一致
2
线性结构,图形结构,顺序存储,链式存储
3
线性,链式
4
链式
5
n,|log2[n]|+1(|x|对x取整)
6
(log2(n+1))/2,
|i/2|,33
7
temp
=
p->next;p->next
=
p->next->next;free(temp);
8
n-1,n*(n-1)/2
9
1055
10
Bn,...B2,B1,An,...A2,A1

1
A
2
C
3
B
4
C
5
C

1
F
2
F
3
T
4
F
5
T
6
F
7
F
8
T
9
T
10
F

《数据结构》复习题 答案 高分求救!
2、 和 是操作点受限的线性表。 栈和队列 3、二分查找的条件是 。 有序顺序存储结构 4、深度为K的二叉树中结点总数最多为 。 2^k-1 5、在有n(n>0)个结点的二叉链表中,空链域的个数为 个。 n+1 6、在对有15个数据的有序表中作二分查找时,有 个结点查找长度为3。7、在单链表...

高分急求!!!数据结构与算法试题!!!
9.空的条件栈顶位置是m-1.满的条件是栈顶位置是-1 10,数据结构和抽象数据类型关系:a.“数据结构”定义为一个二元组(D,S),即两个集合,D是数据元素的集合,S是数据元素之间一个或多个关系的集合。b.“抽象数据类型”本质是“数据类型”,与计算机相关,涉及数据的存储及如何用存储来反应数...

高分求数据结构与算法答案
1-5 ACDCC 6.你写的我分不清,答案是2的(i-1)次方7-10 CCCB 11-15 BDA()C 16-18 CDA 46-50 CCACB 14题 B_树 是不是biinary tree(二叉树)啊?,没说清楚,没法回答。就一题了,估计你自己也能解决,这些题都很基础,不难。

数据结构:设n为正整数,用大“O”记号,将下列程序段的执行时间表示为n的...
则易知程序执行了k步,显然k=O(n^0.5),则执行时间为O(n^0.5)

数据结构与算法试题,高分,求答案啊
R,F->rchild);} 四、对下面的带权连通无向图,用Prim(普里姆)算法,构造一株最小生成树。画出构造过程的每一步。(12分)五 设要分类的数据存放在数组A3 1 4 1 5 9 2 6 5 3中,要进行堆分类,首先得为其建立一个初始堆,试画出初始建设堆过程中,二元树的变化和数组A的变化。

高分:网络流问题
(1)数据结构type nwtype=record c,f:integer; {流量上限和实际流量} end; stype=record l,p:integer; {标号(来自哪个点和是否已检查标记)} end;(2)程序const maxn=100;type nwtype=record c,f:integer; end; stype=record l,p:integer; end;var nw:array[1..maxn,1..maxn] of nwtype; {网...

一个有关C语言(数据结构)程序设计题 高手请帮忙,高分!
define INFINITY 32767 define MAX_VEX 20 \/\/最大顶点个数 define QUEUE_SIZE (MAX_VEX+1) \/\/队列长度 bool *visited; \/\/访问标志数组 \/\/图的邻接矩阵存储结构 typedef struct{ char *vexs; \/\/顶点向量 int arcs[MAX_VEX][MAX_VEX]; \/\/邻接矩阵 int vexnum,arcnum; \/\/图的当前顶点数和...

求严蔚敏《数据结构题集(C语言版)》完整答案 高分
我只有算法部分的你要么???

数据结构高分笔记第五版和第六版有什么区别
至于复旦的,我没用过,但是口碑不好,很多学长反映不好,最好别用复旦的了。还有个李春葆的联考,那个没用过。我你用王道的单科+李春葆的联考综合+高分笔记的数据结构。总体来说,目前市场上没有很好的像数学那么有体系的,能够应对自如目前计算机统考的参考书的,所以大家考的高分很少,尤其今年题目应该...

天津大学软件工程考研经验?
软工这块考得首先是软工那本书,那本书还挺厚的,但是主要的知识点就那么点,这门课重在记忆,很多概念题需要自己背诵,把主要概念背完,想考高分也不难,所以需要花时间去背,另一方面他的应用题也固定,就E—R,数据流图等,考前多做一些题目,保证自己的记忆成都和大脑的活跃度即可,数据结构与程序设计和上面 834 比...

相似回答