高分求数据结构(C语言)高手做题!(200悬赏+50追加+20采纳=270分)
答案:6 悬赏:80 手机版
解决时间 2021-04-16 02:59
- 提问者网友:戎马万世
- 2021-04-15 07:27
高分求数据结构(C语言)高手做题!(200悬赏+50追加+20采纳=270分)
最佳答案
- 五星知识达人网友:大漠
- 2021-04-15 08:05
这么多题啊,还好都是选择题
1.B 、12.C、13.D、14.D、26.D
27.B、38.B、40.C、41.A、42.B
44.D、45.A、48.C、49.D、50.A
59.A、60.B、61.C、62.A、63.D
64.B、65.D、66.C
77.D、78.C、79.B、80.C、81.B
1.B 、12.C、13.D、14.D、26.D
27.B、38.B、40.C、41.A、42.B
44.D、45.A、48.C、49.D、50.A
59.A、60.B、61.C、62.A、63.D
64.B、65.D、66.C
77.D、78.C、79.B、80.C、81.B
全部回答
- 1楼网友:思契十里
- 2021-04-15 12:54
1.数据结构在计算机中的表示称为数据的( B )。
A)存储结构 B)抽象结构 C)顺序结构 D)逻辑结构
12.在下列序列中,不是线性表的是( D )。
A)('a','b','c') B)('AB','CD') C)('a',true,'c') D)(a,b,c,d)
13.线性链表中各链结点之间的地址( D )。
A)必须连续 B)部分地址必须连续 C)不一定连续 D)连续与否无所谓
14.如某链表中最常用的操作是在最后一个结点后插入一个结点和删除最后一个结点,则( D )存储方式最节省运行时间。
A)单链表 B)带头结点的单链表 C)单循环链表 D)带头结点的双循环链表
26.从一个具有头结点的单链表中查找数据元素值为x的结点时,在查找成功的情况下,平均比较次数是( B)。
A)n B)n/2 C)(n-1)/2 D)(n+1)/2
27.对于长度为n的顺序线性表进行删除元素操作,如删除每个元素的概率相同,则删除一个元素移动元素的平均次数是( B )。
A)n/2 B)(n-1)/2 C)(n+1)/2 D)Dn
38.串是( B )。
A)不少于一个字符的序列 B)有限个字符的序列
C)不少于一个字母的序列 D)任意个字母的序列
40.当矩阵非零元素的位置或个数经常变动时,采用( C )存储结构更为恰当。
A)顺序表 B)三元组表 C)十字链表 D)广义表
41.一个三对角矩阵An×n已按行压缩存储到一维数组B中,则B的长度至少为(C)。
A)3n+1 B)3n C)3n-1 D)3n-2
42.广义表((a,b),(c,d))的表尾是( A )。
A)(c,d) B)((c,d)) C)(d) D)d
44.设一棵二叉树中没有度为1的结点,已知叶子结点数为n,此树的结点数为( B )。
A)2n+2 B)2n+1 C)2n D)2n-1
45.设二叉树中有n2个度为2的结点,n1个度为1的结点,n0个叶子结点,则此二叉树中空指针域个数为( D )。
A)n0+n1+n2 B)n2+n1+2n0 C)2n2+n1 D)2n0+n1
48. A、B两个结点可以构成( C )棵不等价的二叉树。
A)2 B)3 C)4 D)5
49.设哈夫曼树的叶结点数为n,则它的结点总数为( A )。
A)2n-1 B)2n C)2n+1 D)不确定
50.采用邻接表存储的图按深度优先搜索方法进行遍历的算法类似于二叉树的(D )。
A)先序遍历 B)中序遍历 C)后序遍历 D)层次遍历
59.快速排序执行一遍之后,已经到位的元素个数是( A )。
A)1 B)3 C) D)
60.在下列算法中,操作时间不随文件的初始状态变化的排序算法是( B )。
A)堆排序 B)折半插入排序 C)基数排序 D)快速排序
61.数据表中有10000个元素,如果仅需求出其中最大的10个元素,则采用( D )
A)快速排序 B)希尔排序 C)堆排序 D)直接选择排序
62.快速排序在最坏情况下时间复杂度是O(n2),比( D )的性能差。
A)堆排序 B)起泡排序 C)选择排序 D)直接插入排序
63.下列排序算法中一趟结束后未必能选出一个元素放在其最终位置上的算法是(A)。
A)快速排序 B)冒泡排序 C)树形选择排序 D)归并排序
64.若需在O(nlogn)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( B )。
A)快速排序 B)堆排序 C)归并排序 D)直接插入排序
65.初始文件中有两个关键字相同的记录,通过不稳定的排序方法排序后,(D)。
A)使得领先关系不发生变化 B)领先关系一定发生变化
C)两个位置都不会发生变化 D)领先关系可能发生变化
66.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( B )方法平均时间最少。
A)起泡排序 B)简单选择排序 C)Shell排序 D)堆排序问题补充:
77.一组记录的排序码为(48,24,18,53,16,26,40),采用冒泡排序法进行排序,则第一趟排序需要进行记录交换的次数是(C)。
A)3 B)4 C)5 D)6
78.在下列排序方式中,关键码比较次数与记录的初始排列无关的是(D)。
A)直接选择排序 B)冒泡排序 C)堆排序 D)归并排序
79.倒排文件的最大优点是( B)。
A)便于进行文件的归并 B)有利于文件的插入与删除
C)能大大地提高主关键字的查找速度 D)能大大地提高次关键字的查找速度
80.文件中可使用的数据的最小单位是(B )。
A)记录 B)字符 C)数据项 D)数据元素
81.ISAM文件和VASM文件属于(C )。
A)索引非顺序文件 B)索引顺序文件 C)顺序文件 D)散列文件
A)先序遍历 B)中序遍历 C)后序遍历 D)按层遍历
181.使用散列函数hashf(x)=x MOD 11,把一个整数值转换成散列表下标,现要把数据 1、13、12、34、38、33、27、22插入到散列表中。
(1)使用线性探查再散列法来构造散列表并同时列出每个数据的比较次数。
(2)使用链地址法来构造散列
A)存储结构 B)抽象结构 C)顺序结构 D)逻辑结构
12.在下列序列中,不是线性表的是( D )。
A)('a','b','c') B)('AB','CD') C)('a',true,'c') D)(a,b,c,d)
13.线性链表中各链结点之间的地址( D )。
A)必须连续 B)部分地址必须连续 C)不一定连续 D)连续与否无所谓
14.如某链表中最常用的操作是在最后一个结点后插入一个结点和删除最后一个结点,则( D )存储方式最节省运行时间。
A)单链表 B)带头结点的单链表 C)单循环链表 D)带头结点的双循环链表
26.从一个具有头结点的单链表中查找数据元素值为x的结点时,在查找成功的情况下,平均比较次数是( B)。
A)n B)n/2 C)(n-1)/2 D)(n+1)/2
27.对于长度为n的顺序线性表进行删除元素操作,如删除每个元素的概率相同,则删除一个元素移动元素的平均次数是( B )。
A)n/2 B)(n-1)/2 C)(n+1)/2 D)Dn
38.串是( B )。
A)不少于一个字符的序列 B)有限个字符的序列
C)不少于一个字母的序列 D)任意个字母的序列
40.当矩阵非零元素的位置或个数经常变动时,采用( C )存储结构更为恰当。
A)顺序表 B)三元组表 C)十字链表 D)广义表
41.一个三对角矩阵An×n已按行压缩存储到一维数组B中,则B的长度至少为(C)。
A)3n+1 B)3n C)3n-1 D)3n-2
42.广义表((a,b),(c,d))的表尾是( A )。
A)(c,d) B)((c,d)) C)(d) D)d
44.设一棵二叉树中没有度为1的结点,已知叶子结点数为n,此树的结点数为( B )。
A)2n+2 B)2n+1 C)2n D)2n-1
45.设二叉树中有n2个度为2的结点,n1个度为1的结点,n0个叶子结点,则此二叉树中空指针域个数为( D )。
A)n0+n1+n2 B)n2+n1+2n0 C)2n2+n1 D)2n0+n1
48. A、B两个结点可以构成( C )棵不等价的二叉树。
A)2 B)3 C)4 D)5
49.设哈夫曼树的叶结点数为n,则它的结点总数为( A )。
A)2n-1 B)2n C)2n+1 D)不确定
50.采用邻接表存储的图按深度优先搜索方法进行遍历的算法类似于二叉树的(D )。
A)先序遍历 B)中序遍历 C)后序遍历 D)层次遍历
59.快速排序执行一遍之后,已经到位的元素个数是( A )。
A)1 B)3 C) D)
60.在下列算法中,操作时间不随文件的初始状态变化的排序算法是( B )。
A)堆排序 B)折半插入排序 C)基数排序 D)快速排序
61.数据表中有10000个元素,如果仅需求出其中最大的10个元素,则采用( D )
A)快速排序 B)希尔排序 C)堆排序 D)直接选择排序
62.快速排序在最坏情况下时间复杂度是O(n2),比( D )的性能差。
A)堆排序 B)起泡排序 C)选择排序 D)直接插入排序
63.下列排序算法中一趟结束后未必能选出一个元素放在其最终位置上的算法是(A)。
A)快速排序 B)冒泡排序 C)树形选择排序 D)归并排序
64.若需在O(nlogn)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( B )。
A)快速排序 B)堆排序 C)归并排序 D)直接插入排序
65.初始文件中有两个关键字相同的记录,通过不稳定的排序方法排序后,(D)。
A)使得领先关系不发生变化 B)领先关系一定发生变化
C)两个位置都不会发生变化 D)领先关系可能发生变化
66.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( B )方法平均时间最少。
A)起泡排序 B)简单选择排序 C)Shell排序 D)堆排序问题补充:
77.一组记录的排序码为(48,24,18,53,16,26,40),采用冒泡排序法进行排序,则第一趟排序需要进行记录交换的次数是(C)。
A)3 B)4 C)5 D)6
78.在下列排序方式中,关键码比较次数与记录的初始排列无关的是(D)。
A)直接选择排序 B)冒泡排序 C)堆排序 D)归并排序
79.倒排文件的最大优点是( B)。
A)便于进行文件的归并 B)有利于文件的插入与删除
C)能大大地提高主关键字的查找速度 D)能大大地提高次关键字的查找速度
80.文件中可使用的数据的最小单位是(B )。
A)记录 B)字符 C)数据项 D)数据元素
81.ISAM文件和VASM文件属于(C )。
A)索引非顺序文件 B)索引顺序文件 C)顺序文件 D)散列文件
A)先序遍历 B)中序遍历 C)后序遍历 D)按层遍历
181.使用散列函数hashf(x)=x MOD 11,把一个整数值转换成散列表下标,现要把数据 1、13、12、34、38、33、27、22插入到散列表中。
(1)使用线性探查再散列法来构造散列表并同时列出每个数据的比较次数。
(2)使用链地址法来构造散列
- 2楼网友:鸽屿
- 2021-04-15 12:37
法加了一个判断,仅此而已,便于初学者的理解。
//---------------------------------------------------------------------------
已经更改为你要的程序:
//---------------------------------------------------------------------------
#include
#include
#define ENDIN (-1)
typedef struct Node{
int data;
struct Node *r;
struct Node *l;
} node;
typedef node *bt;
bt BST(bt a,int d)
{
if (a==NULL) {
a=(bt)malloc(sizeof(node));
a->data =d;
a->r=a->l=NULL;
}
else if (ddata ) {
a->l=BST(a->l ,d);
}
else if (d>=a->data ) {
a->r=BST(a->r,d);
}
return a;
}
bt init(void)
{
int i=0;
bt tree=NULL;
while (scanf("%d",&i),i!=ENDIN){
tree=BST(tree,i);
}
return tree;
}
unsigned int inorder(bt a)
{
static unsigned int s=0;
if (a) {
inorder(a->l);
if (a->r==NULL&&a->l==NULL) {
++s;
printf("%d\t",a->data);
}
inorder(a->r);
}
return s;
}
void FreeTree(bt t)
{
if (t) {
FreeTree(t->l);
FreeTree(t->r);
}
free(t);
}
int main(void)
{
bt te;
te=init();
printf("\n\nLeaf node:%d\n\n",inorder(te));
FreeTree(te);
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
已经更改为你要的程序:
//---------------------------------------------------------------------------
#include
#include
#define ENDIN (-1)
typedef struct Node{
int data;
struct Node *r;
struct Node *l;
} node;
typedef node *bt;
bt BST(bt a,int d)
{
if (a==NULL) {
a=(bt)malloc(sizeof(node));
a->data =d;
a->r=a->l=NULL;
}
else if (ddata ) {
a->l=BST(a->l ,d);
}
else if (d>=a->data ) {
a->r=BST(a->r,d);
}
return a;
}
bt init(void)
{
int i=0;
bt tree=NULL;
while (scanf("%d",&i),i!=ENDIN){
tree=BST(tree,i);
}
return tree;
}
unsigned int inorder(bt a)
{
static unsigned int s=0;
if (a) {
inorder(a->l);
if (a->r==NULL&&a->l==NULL) {
++s;
printf("%d\t",a->data);
}
inorder(a->r);
}
return s;
}
void FreeTree(bt t)
{
if (t) {
FreeTree(t->l);
FreeTree(t->r);
}
free(t);
}
int main(void)
{
bt te;
te=init();
printf("\n\nLeaf node:%d\n\n",inorder(te));
FreeTree(te);
return 0;
}
//---------------------------------------------------------------------------
- 3楼网友:廢物販賣機
- 2021-04-15 11:07
小子,你花头不小啊,这样搞,还算是你复习的吗?你怎么不干脆把期末考卷贴这来啊?追问不做题拿分 麻烦一边凉快着。。追答...............你厉害~!
- 4楼网友:傲气稳了全场
- 2021-04-15 10:22
B C C D D
B B B A B
D D C D A
A C C A D
B D D
补充里面的DCCCB追问大哥~麻烦您把题号标一下~追答1.B
12.C
13.C
14.D
26.D
27.B
38.B
40.B
41.A
42.B
44.D
45.D
48.C
49.D
50.A
59.A
60.A
61.C
62.A
63.D
64.B
65.D
66.D
77.D
78.C
79.C
80.C
81.B
B B B A B
D D C D A
A C C A D
B D D
补充里面的DCCCB追问大哥~麻烦您把题号标一下~追答1.B
12.C
13.C
14.D
26.D
27.B
38.B
40.B
41.A
42.B
44.D
45.D
48.C
49.D
50.A
59.A
60.A
61.C
62.A
63.D
64.B
65.D
66.D
77.D
78.C
79.C
80.C
81.B
- 5楼网友:woshuo
- 2021-04-15 08:55
还是自己做做,把不会的捡出来大家一起研究,或者百度!呵呵!祝你成功!追问我都捡了,那些会的和可能会的都没弄上来~ 我也在做 想对答案 啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯