数据结构
文章平均质量分 57
....
小李子还挺酸
突飞猛进往往是自然发生的。你在某个夜晚苦熬一个知识点时,不会觉得自己突飞猛进;只有在多年后某日熟练地给别人讲解这个知识点后,内心才会小小地波动一下,猛然忆起当年深夜中的青灯一盏。
展开
-
<数据结构>二叉树的删除(java实现)
要求:递归删除节点1、如果删除的节点是叶子节点,则删除节点2、如果删除的节点是非叶子节点,则删除该子树删除节点前判断树是否为空,如果为空,则不进行操作。如果不为空,则再判断一下二叉树是否只有一个节点,如果是,则直接将二叉树置空。1、由于二叉树的单向的,因此不是判断当前节点是否是要删除的节点,而是判断当前节点的子节点是否需要删除。2、如果当前节点的左子节点不为空,并且左子节点就是要删除的节点,则this.left=null,并且返回(结束递归删除)3、如果当前节点的右子节点不为空,并且右子节点就是原创 2021-04-18 19:31:59 · 651 阅读 · 1 评论 -
<数据结构>二叉树的前序查找、中序查找和后序查找(java实现)
使用前序查找、中序查找、后序查找的方式,查询指定的节点以此图为例:节点信息为本次查找方法是基于<数据结构>二叉树的创建、前序遍历、中序遍历和后序遍历(java实现)编写的,查找方法是在heroNode节点中编写的方法前序查找1、先判断当前节点的no是否等于要查找的2、如果是,则返回当前节点,如果不是,则进行下一步3、判断当前节点的左子节点是否为空,如果不为空,则递归前序查找4、如果左递归前序查找,找到节点则返回,否则继续判断当前节点的右子节点是否为空,如果不为空,则继续向右递归前序查找,原创 2021-04-18 14:56:55 · 365 阅读 · 3 评论 -
<数据结构>二叉树的创建、前序遍历、中序遍历和后序遍历(java实现)
二叉树的概念1、每个节点最多只有两个子节点的树称为二叉树2、二叉树的子节点分为左节点和右节点3、如果二叉树的所有节点都在最后一层,并且节点总数为2^n-1,n为层数,那么称这个二叉树为满二叉树4、如果该二叉树的所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续,那么称该二叉树为完全二叉树二叉树的遍历前序遍历:先输出父节点,再遍历左子树和右子树中序遍历:先遍历左子树,再输出父节点,再遍历右子树后序遍历:先遍历左子树,再遍历右子树,最后输出原创 2021-04-18 12:54:18 · 827 阅读 · 2 评论 -
<数据结构>链表的增删改------java实现
1、定义结点Node这里结点的数据域是(int,String,String)下一节点next统一初始化为null并且提供一个有参构造函数public Node(int no,String name,String nickName)为了方便实例输出,还重写了方法toString()class Node{ //数据域 int no; String name; String nickName; //下一节点 Node next=null; //原创 2021-04-11 17:13:50 · 186 阅读 · 0 评论 -
<数据结构>顺序表的实现
以下实现均以下标从0开始定义顺序表结构体记录当前元素个数和定义顺序表的大小#define maxSize 10typedef struct{ int length; int data[maxSize];}Sqlist;2.初始化顺序表,判断表是否为空void initList(Sqlist *L){ L->length = 0;}_Bool emptyList(Sqlist L) { return L.length == 0; }3.清空表_Bool clear原创 2021-04-11 09:40:47 · 137 阅读 · 0 评论 -
<数据结构>链表的建立、插入、删除与查找
单链表的定义为了建立数据之间的线性关系,因此对于每个链表结点,除了存放自身的信息(data)之外,还要保存指向后继结点(next)的指针,因此需要一个指针变量指向下一个结点。struct Node{ ElemType data; //数据域 struct Node* next; //指针域};struct Node* p=(struct Node*)malloc(sizeof(struct Node));//增加一个新的结点,在内存中申请一个结点所需的空间,并用p指向这个结点由于原创 2021-04-05 16:49:56 · 992 阅读 · 0 评论 -
<数据结构>顺序表的插入、删除操作
插入操作#include<stdio.h>#define maxSize 10 //定义最大长度/*静态分配实现顺序表缺点:数组存满了无法扩大空间,因此对应的有动态分配实现数组*/struct List{ int data[maxSize]; //用静态的“数组”存放数据 int length; //顺序表的当前长度,即实际已经存放的数据};struct List SqList;void InitList(struct List原创 2021-03-21 13:13:42 · 726 阅读 · 0 评论 -
<数据结构>顺序表1----静态分配初始化、动态分配初始化及空间扩展
静态分配初始化顺序表#include<stdio.h>#define maxSize 10 //定义最大长度/*静态分配实现顺序表缺点:数组存满了无法扩大空间,因此对应的有动态分配实现数组*/struct List{ int data[maxSize]; //用静态的“数组”存放数据 int length; //顺序表的当前长度,即实际已经存放的数据};struct List SqList;void InitList(struc原创 2021-03-21 10:43:42 · 913 阅读 · 0 评论