数据结构第一轮复习--第五章树、二叉树(包罗课程、作业代码)
二叉树的链式存储//二叉树的链式存储
struct ElemType{
int value;
};
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//定义一颗空树
BiTree root = NULL;
//插入根结点
root = (BiTree)malloc(sizeof(BiTNode));
root->data={1};
root->lchild = NULL;
root->rchild = NULL;
//插入新结点
BiTNode * p = (BiTNode *)malloc(sizeof(BiTNode));
p->data={2};
p->lchild = NULL;
p->rchild = NULL;
root->lchild = p;//作为根结点的左孩子 其中,struct ElemType 是一个结构体范例,可以包罗多种不同范例的数据。在现实应用中,ElemType 的界说可以根据具体需求举行扩展,包罗多个字段,以存储更复杂的信息。
struct ElemType{
int value;
}; https://i-blog.csdnimg.cn/direct/5cb69fd773cb41d6a5f78e4a527509af.png
https://i-blog.csdnimg.cn/direct/d31e4b78954a47c7947602baa5bab4fb.png
示例代码:插入一个新结点
假设我们要插入一个新结点,其值为 2,姓名为 "Alice",年事为 20,可以如许实现:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct ElemType {
int value;
char name;
int age;
};
typedef struct BiTNode {
ElemType data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
int main() {
// 定义一颗空树
BiTree root = NULL;
// 插入根结点
root = (BiTree)malloc(sizeof(BiTNode));
if (root == NULL) {
printf("Memory allocation failed.\n");
return -1;
}
root->data.value = 1;
strcpy(root->data.name, "Root");
root->data.age = 0;
root->lchild = NULL;
root->rchild = NULL;
// 插入新结点
BiTNode *p = (BiTNode *)malloc(sizeof(BiTNode));
if (p == NULL) {
printf("Memory allocation failed.\n");
return -1;
}
p->data.value = 2;
strcpy(p->data.name, "Alice");
p->data.age = 20;
p->lchild = NULL;
p->rchild = NULL;
root->lchild = p; // 作为根结点的左孩子
// 打印根结点和左子结点的信息
printf("Root: value=%d, name=%s, age=%d\n", root->data.value, root->data.name, root->data.age);
printf("Left child: value=%d, name=%s, age=%d\n", p->data.value, p->data.name, p->data.age);
// 释放内存
free(p);
free(root);
return 0;
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]