试题详情
- 简答题 下面算法实现,用一棵二叉树中的结点建立一个按关键字值从小到大次序排列的带表头结点的双向循环链表。二叉树的结点结构如下所示:
其中,p是指向结点的指针;p->key表示结点的关键字域,p->left和p->right分别表示结点的左、右孩子的指针域。 void fromtreetolist(p,l) /*p,h是指向二叉树中结点的指针,*/ /*l是指向双向循环链表表头结点的指针*/ {if (p!=NULL) { fromtreetolist(p->left,l); fromtreetolist(p-> right,l); h=l; while (h->right!=l)&&(h->right->key
key)h=h->right; p->right=h->right; p->left=h; (); h->rihght=p; } } void buildlisttree(root,l) /*root是指向二叉树根结点的指针,*/ /*l是指向双向循环链表表头结点的指针*/ {l=(struct nodetype *)malloc(sizeof(struct nodetype)); l->left=l; l->right=l; fromtreetolist(root,l); }
- h->right->left=p
关注下方微信公众号,在线模考后查看
热门试题
- 八皇后问题是一种递归问题,经常借助()来
- 栈上的基本运算有哪些?
- 表达式求值是()应用的一个典型例子。
- 外部排序
- 对链表设置头结点的作用是什么?(至少说出
- 试编写算法求一元多项式的值pn
- 在顺序栈中删除一个元素,至少要移动()元
- 数组A中,每个元素的长度为3个字节,行下
- 已知一组记录为(46,74,53,14,
- 根据数据结构的类型的定义分析算法:
- 简述顺序表示的二叉树中各结点的编号规则。
- 已知Q是一个非空队列,S是一个空栈。编写
- 数据结构是指()。
- 链表与线性表的关系是()。
- 数据结构里,栈的使很广泛,它可以再一端插
- 一棵度为2的树与一棵二叉树有何区别?
- 一个栈的入栈序列是1,2,3,4,5,则
- 序列初始为逆序时,冒泡排序法所进行的元素
- 计算机算法指的是()
- 排序方法有许多种,()法从未排序的序列中