试题详情
- 简答题下面算法实现,用一棵二叉树中的结点建立一个按关键字值从小到大次序排列的带表头结点的双向循环链表。二叉树的结点结构如下所示: 其中,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
关注下方微信公众号,在线模考后查看
热门试题
- 数据结构里,栈的应用很广泛,递归问题的解
- 在由n个单元组成的顺序存储的循环队列sq
- 广度遍历
- 从具有n个结点的二叉排序树中查找一个元素
- 循环队列解决了普通队列的什么问题()。
- 设循环队列的容量为40(序号从0到39)
- 折半搜索适用于有序表,包括有序的顺序表和
- 若串S=‘software’,其子串的数
- 顺序表有5个元素,设在任何位置上插入元素
- 在所有排序方法中,()方法使数据的组织采
- 有12个结点的平衡二叉树的最大深度是()
- 试推导含有12个结点的平衡二叉树的最大深
- 数据结构里,算法的设计要求不应该包括()
- 在一个长度为n的顺序表中删除第i个元素,
- 试举一个数据结构的例子,叙述其逻辑结构和
- 在一个具有n个顶点的无向图中,要连接全部
- 用邻接表表示图进行深度优先遍历时,通常借
- 每种数据结构都应具备三种基本运算:插入、
- 己知指针p指向单链表中的某结点,则下列各
- 对输入文件(101,51,19,61,3