数据结构C语言版 二叉链表

实验内容:
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); // 访问结点
    }
}

这些都是基础,根本不需要提问,百度一下到处都是源代码