实验内容:
1、二叉树的二叉链表存储结构创建算法实现。
要求:数据元素类型TElemType取char类型。实现如下算法:
2、二叉树的中序遍历非递归算法的实现
3、二叉树的中序线索二叉链表创建算法的实现
4、中序线索二叉树的中序遍历算法的实现
想要源代码
3和4
#include <iostream>
typedef struct ThreadNode {
int val;
struct ThreadNode *lchild, *rchild;
int ltag, rtag;
} TreadNode;
ThreadNode *pre = NULL;
void InThread(ThreadNode *p) {
if (p == NULL) return;
InThread(p->lchild);
if (p->lchild == NULL) {
p->lchild = pre;
p->ltag = 1;
}
if (pre && pre->rchild == NULL) {
pre->rchild = p;
pre->rtag = 1;
}
pre = p;
InThread(p->rchild);
}
void CreateInThread(ThreadNode *p) {
if (p == NULL) return;
InThread(p);
pre->rchild = NULL;
pre->rtag = 1;
}
ThreadNode *FirstNode(ThreadNode *p) {
while (p->ltag == 0) p = p->lchild;
return p;
}
ThreadNode *NextNode(ThreadNode *p) {
if (p->rtag == 1) return p->rchild;
return FirstNode(p->rchild);
}
void InOrder(ThreadNode *p) {
for (ThreadNode *p = FirstNode(p); p; p = NextNode(p)) {
printf("%d ", p->val); // 访问结点
}
}
这些都是基础,根本不需要提问,百度一下到处都是源代码