更多"循环链表的主要优点是()。"的相关试题:
[单项选择]循环链表的主要优点是______。
A. 不再需要头指针了
B. 从表中任一结点出发都能访问到整个链表
C. 在进行插入、删除运算时,能更好的保证链表不断开
D. 已知某个结点的位置后,能够容易的找到它的直接前件
[单项选择]深低温停循环的主要优点是
A. 进行关键性手术操作时手术野内无回血及插管的干扰
B. 将体外循环的时间降到最低限度
C. 减少血液破坏
D. 减少与体外循环相关并发症的发生
E. 以上都是
[单项选择]下列描述的不是链表的优点是()。
A. 逻辑上相邻的结点物理上不必邻接
B. 插入、删除运算操作方便,不必移动结点
C. 所需存储空间比线性表节省
D. 无需事先估计存储空间的大小
[简答题]试编写一个建立带表头结点的双向循环链表的算法。
[填空题]数据结构分为线性结构和非线性结构,其中循环链表属于 【1】 。
[填空题]带头结点的双向循环链表L为空的条件是______。
[填空题]双向循环链表找前驱结点和后继结点的时间复杂度为______。
[填空题]【说明2.1】
L为一个带头结点的循环链表。函数deletenode(LinkList L, int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。
【函数2.1】
LinkList deletenode(LinkList L, int c)
LinkList Lc,p,pre;
pre=L;
p= (1) ;
Lc=(LinkList)malloc(sizeof(ListNode) );
Lc->next=Lc
while(p!=L)
if(p->data>c)
(2) ;
(3) ;
Lc->next=p;
p=pre->next;
else
pre=p;
p=pre->next;
return Lc;
【说明2.2】
递归函数dec_to_k_2(int n, int k)的功能是将十进制正整数n转换成k<2≤k≤9)进制数,并打印。
【函数2.2】
dec_to_k_2(int n, int k)
/*将十进制正整数n转换成k(2≤k≤9)进制数*/
if(n!=0)
dec_to_k_2( (4) ,k);
printf("%d", (5) );
[填空题]【说明2.1】
L为一个带头结点的循环链表。函数deletenode(LinkList L, int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。
【函数2.1】
LinkList deletenode(LinkList L, int c)
{
LinkList Lc,p,pre;
pre=L;
p= (1) ;
Lc=(LinkList)malloc(sizeof(ListNode) );
Lc->next=Lc
while(p!=L)
if(p->data>c)
{
(2) ;
(3) ;
Lc->next=p;
p=pre->next;
}
else
{
pre=p;
p=pre->next;
}
return Lc;
}
【说明2.2】
递归函数dec_to_k_2(int n, int k)的功能是将十进制正整数n转换成k<2≤k≤9)进制数,并打印。
【函数2.2】
dec_to_k_2(int n, int k)
{ /*将十进制正整数n转换成k(2≤k≤9)进制数*/
if(n!=0)
{
dec_to_k_2( (4) ,k);
printf("%d", (5) );
}
}
[填空题]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);
}
}
[填空题]删除双向循环链表中*p的前驱结点(存在)应执行的语句是______。
[填空题][函数说明3.1]
假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。
[函数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 ConstrucTree(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);
main(void)
/*根据顺序存储结构建立二叉链表*/
Binarytree bitree;