学校- 二叉树结点、度、边核心计算方法总结
二叉树结点、度、边核心计算方法总结 一、核心概念定义 1.1 结点相关定义 结点:二叉树中存储数据的基本单元(含数据项和指向子树的指针)。 分类: 根结点:无父结点的唯一结点(二叉树的起点); 叶子结点(终端结点):无左、右子树的结点(度为 0); 内部结点(非终端结点):至少有一个子树的结点(度为 1 或 2); 父结点 / 子结点:若结点 A 指向结点 B,则 A 是 B 的父结点,B 是 A 的子结点(左子结点 / 右子结点)。 1.2 度相关定义 结点的度:一个结点拥有的 子结点个数 (二叉树中结点度只能是 0、1、2): 度为 0:叶子结点(无左、右子); 度为 1:只有左子或只有右子的结点; 度为 2:同时有左子和右子的结点。 树的度:二叉树中所有结点的度的最大值(二叉树的度固定≤2)。 1.3 边的定义 连接两个相邻结点(父结点与子结点)的线段,即结点之间的逻辑关联。 例:根结点到左子结点的连线是一条边,度为 2 的结点有两条边(分别连接左、右子结点)。 二、通用计算关系 2.1 边数与结点总数的关系 公式:边数(E)= 结点总数(n)...
学校-二叉树相关操作复习笔记
二叉树相关操作复习笔记 一、二叉树的基本结构定义 // 常见的二叉树节点结构定义struct BiTNode { char data; // 数据域,根据需求可改为int等类型 BiTNode *lchild, *rchild; // 左右孩子指针};// 或使用typedef定义typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild;} BiTNode, *BiTree; // BiTree为指向BiTNode的指针类型 二、二叉树的创建 1. 基于带虚节点的先序序列创建 // 根据带虚结点的先序序列创建二叉树(*表示空节点)BiTNode *createBT(string &s) { if(s[0]=='*') { // 遇到虚节点,创建空树 s=s.substr(1); // 移除已处理的字符 return NULL; } ...
Java 基础
Java 基础 一、Hello World 程序(入门第一个程序) 1. Hello_World.java public class Hello_World { public static void main(String[] args) { System.out.println("Hello World"); }} 代码解释: public class Hello_World:定义一个公开的类,类名必须和文件名(Hello_World.java)完全一致(包括大小写) public static void main(String[] args):程序的入口方法,所有 Java 程序都从这个方法开始执行 public:公开的,允许外部访问 static:静态的,不需要创建对象就能执行 void:无返回值 main:方法名,固定为main String[] args:方法参数,接收命令行输入的参数 System.out.println(“Hello World”):打印语句,在控制台...
Python 基础
Python 基础 1. 第一个程序:Hello World print("hello world")print(666)print(13.14) 解释: print()是 Python 的输出函数,用于在屏幕上显示内容 双引号""包裹的是字符串(文字内容) 直接写数字可以输出整数(666)和小数(13.14) 2. 变量 money=50print("钱包还有:",money)#买了冰淇淋money=money-10print("买了冰淇淋,钱包还有:",money) 解释: 变量就像一个容器,用来存储数据 money=50表示创建一个名为money的变量,并赋值 50 变量可以被重新赋值,money=money-10表示将money原来的值减 10 后再存回money 3. 数据类型 print(type(666.666)) # 浮点数(小数)print(type("hello world")) # 字符串(文字)print(type(True)) # 布尔值(真)str...
学校-链表相关操作复习笔记
链表相关操作复习笔记 链表合并(Merge 函数) 源代码 List Merge( List L1, List L2 ){ List p1 = L1->Next; List p2 = L2->Next; PtrToNode newNode = (PtrToNode)malloc(sizeof(struct Node)); newNode->Next = NULL; List p3 = newNode; while (p1 != NULL && p2 != NULL){ if (p1->Data <= p2->Data){ p3->Next = p1; p3 = p3->Next; p1 = p1->Next; } else{ p3->Next = p2; p3 = p3-...
学校-数据结构知识点总结
数据结构知识点总结 本文围绕“数据结构基础-线性结构-树形结构-图形结构-查找-排序”的逻辑展开。 一、数据结构与算法基础 1. 数据结构核心概念 基本术语: 数据:客观事物的符号表示(如图像、声音)。 数据元素:数据的基本单位(如一条学生记录)。 数据项:数据元素的不可分割最小单位(如学生记录中的“学号”“姓名”)。 数据对象:具有相同性质的数据元素集合(如所有学生记录)。 数据结构:相互存在特定关系的数据元素集合,形式定义为二元组 DataStructure=(D,S)Data Structure=(D, S)DataStructure=(D,S)(DDD 为数据元素有限集,SSS 为 DDD 上关系有限集)。 数据结构三要素: 逻辑结构:数据元素间的逻辑关系(与存储无关): 线性结构:元素间“一对一”(如线性表、栈、队列、串、数组)。 非线性结构:元素间“一对多”(树)、“多对多”(图)或无明确关系(集合)。 存储结构(物理结构):数据在计算机中的表示,共4种: 顺序存储:逻辑相邻元素物理也相邻(如数组),支持随机存取,插入/删除需移动元素。 链式存储:用...
学校-数据结构
数据结构网课代码整理 注:以下代码基于 C 语言实现,通用数据类型 ElemType 统一定义为 int。 一、线性表 1. 顺序表 1.1 顺序表结构体定义(静态+动态) #include <stdio.h>#include <stdlib.h>#include <stdbool.h>// 通用数据类型定义typedef int ElemType;// 1. 静态顺序表#define MaxSize 50 // 静态顺序表最大长度typedef struct { ElemType data[MaxSize]; // 存储元素的数组 int length; // 当前顺序表长度} SqList;// 2. 动态顺序表#define InitSize 50 // 动态顺序表初始长度typedef struct { ElemType *data; // 指向动态分配数组的指针 int MaxSize; // 数组最大容量 int length; // ...
