更多"如果某线性表的结点不等长,但希望能按下标随机存取每个元素,可以采用 ("的相关试题:
[单项选择]线性表是最简单的一种数据结构,有顺序和链接二种存储方式。线性表按链接方式存储时,每个结点的存储包括______两部分。
A. 数据值与符号
B. 数据与指针
C. 数据与表名
D. 头地址与尾地址
[填空题]线性表是最简单的一种数据结构,有顺序和链接两种存储方式。线性表按链接方式存储时,每个结点的存储包括______两部分。
[填空题]线性表是最简单的一种数据结构,有顺序和链接两种存储方式。线性表按链接方式存储时,对每个结点的存储包括 【1】 两部分。
[填空题]在线性表的顺序存储中,假设每个结点所占用的存储空间为c,且第一个单元的存储地址则是该结点的存储地址,设开始结点a1的存储地址是LOC(a1),则结点a1存储地址LOC(a1)可以通过下式得到______。
[单项选择]采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分结点的个数是( )
A. 10
B. 25
C. 6
D. 625
[单项选择]线性表采用链式存储时,结点的存储地址()
A. 必须是不连续的
B. 连续与否均可
C. 必须是连续的
D. 和头结点的存储地址相连续
[单项选择]用二分查找法对具有n个结点的线性表查找一个结点,所需的平均比较次数为( )。
A. O(n2)
B. O(nlog2n)
C. O(n)
D. O(1og2n)
[填空题]在线性表的单链接存储中,若一个结点的地址为P,结点指针域为next,则其后继结点的地址为______。
[填空题]在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 【1】 个前驱结点;最后一个结点没有后继结点,其余每个结点有且只有 【2】 个后继结点。
[填空题]1】
假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。
例如:链表初始元素为:
(7, 10,10,21,30,42,42,42,51,70)
经算法操作后变为:
(7,10,21,30,42,51,70)
【函数3.1】
void deleteklist(LinkList head)
LinkNode * p, * q;
p=head->next;
while(p!=head)
q=p->next;
while( (1) )
(2) ;
free(q);
q=p->next;
p=p->next;
【说明3.2】
已知一棵完全二叉树存放于一个一维数组T[n]中,T[n]中存放的是各结点的值。下面的程序的功能是:从T[0]开始顺序读出各结点的值,建立该二叉树的二叉链表表示。
【函数3.2】
#include<istream.h>
typedef struct node
int data;
stuct node leftChild, rightchild;
BintreeNode;
typedef BintreeNode * BinaryTree;
void ConstrncTree(int T[], int n, int i, BintreeNode * &ptr)
if(i>=n) (3) ; /*置根指针为空*/
else
ptr=-(BTNode * )malloc(sizeof(BTNode) )
ptr->data=T[i];
Cons
[填空题]1】
假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。
例如:链表初始元素为:
(7, 10,10,21,30,42,42,42,51,70)
经算法操作后变为:
(7,10,21,30,42,51,70)
【函数3.1】
void deleteklist(LinkList head)
{
LinkNode * p, * q;
p=head->next;
while(p!=head)
{
q=p->next;
while( (1) )
{
(2) ;
free(q);
q=p->next;
}
p=p->next;
}
}
【说明3.2】
已知一棵完全二叉树存放于一个一维数组T[n]中,T[n]中存放的是各结点的值。下面的程序的功能是:从T[0]开始顺序读出各结点的值,建立该二叉树的二叉链表表示。
【函数3.2】
#include<istream.h>
typedef struct node {
int data;
stuct node leftChild, rightchild;
} BintreeNode;
typedef BintreeNode * BinaryTree;
void ConstrncTree(int T[], int n, int i, BintreeNode * &ptr)
if(i>=n) (3) ; /*置根指针为空*/
else
{
ptr=-(BTNode * )malloc(sizeof(BTNode) )
ptr->data=T[i];
ConstrucTree(T,n,2, i+1, (4) );
ConstrucTree(T,n, (5) ,ptr->rightchild);
}
}
[判断题]线性表采用链式存储方式时,结点的存储地址必须是连续的。( )