从大到小的次序链接的,试分别写出从顶点0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。
假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则的运算结果仍为原指针类型,且
则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中L RPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL) 的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点, 则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。
非空的循环单链表head的尾结点(由指针p所指)满足()
A.p—>next=NULL
B.p=NULL
C.p—>next=head
D.p=head
O(n)的算法:将L改造为I.=(a1,a3,…,an,…,a4,a2)。
以二叉链表作为二叉树的存储结构,编写以下算法:
(1)统计二叉树的叶结点个数。
(2)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。
(3)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。
(4)用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。
(5)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
(6)输出二叉树中从每个叶子结点到根结点的路径。
已知P结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。
a.在P结点后插入S结点的语句序列是________。
b.在P结点前插入S结点的语句序列是________。
c.删除P结点的直接前驱结点的语句序列是________。
d.删除P结点的直接后继结点的语句序列是________。
e.删除P结点的语句序列是________。
(1) P->next=P->next->next;
(2) P->prio u=P->prio u->prio u;
(3) P->next=S;
(4) P->prio u=S;
(5) S->next=P;
(6) S->prio u=P;
(7) S->next=P->next;
(8) S->prio u=P->prio u;
(9) P->prio u->next=P->next;
(10) P->prio u->next=P;
(11) P->next->prio u=P;
(12) P->next->prio u=S;
(13) P->prio u->next=S;
(14) P->next->prio u=P->prio u;
(15) Q=P->next;
(16) Q-P->prio u;
(17) free(P) ;
(18) free(Q) ;