学习笔记-数据结构-树与二叉树(2024-4-22)

递归遍历二叉树 先序遍历: typedef struct BiTNode{ Elemtype data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void PreOrder(BiTree T){ if(T!=NULL) { vist(T);//访问根节点 PreOrder(T->lchild);//递归遍历左子树 PreOrder(T->r...

数据结构面试常见问题:什么是二叉树?如何进行二叉树的遍历?

二叉树的介绍 二叉树是一种特殊的数据结构,它的每个元素都有零个、一个或两个子元素。这些元素被称为节点,每个节点都有一个值,以及两个指向其子节点的链接。 这种结构就像一个家族树,每个节点都有一个父节点(除了顶部的根节点),以及左右两个子节点。在实际项目中,我们经常会用到二叉树这种数据结构,它在数据存储、搜索等方面都有着广泛的应用。 接下来,我们将深入探讨二叉树的结构,包括节点、父节点、子节点、叶节点、根节...

数据结构和算法】--链表

链表 这里只记录.cpp的测试代码 #include "MyList.hpp"#include <iostream>using namespace std; void printList(pNode headNode){ cout << "*** printList ****" << endl; pNode tempNode, curNode; if (nullptr == headNode) {...

数据结构——哈希表的平均查找长度

的,哈希表并不是为了单纯存储数据的,他并不会减小存储这些数据使用的空间,而是为了实现快速的数据查找,插入和删除操作。map就可以使用哈希表来实现,所以map可以实现利用键来快速访问到值。 哈希表是一种数据结构,它通过使用哈希函数将关键字映射到内存中的特定位置(通常是数组的索引),从而将关键字和其存储的地址之间建立了联系。这样一来,当需要查找特定关键字时,可以通过哈希函数计算出其在哈希表中的位置,并直接访问...

学习笔记-数据结构-树与二叉树(2024-04-23)

线索二叉树 传统的二叉链表存储仅能体现一种父子关系,不能直接得到节点在遍历中的前驱或后继。在含有n个节点的二叉树中,有n+1个空指针。这是因为每个叶节点都有2个空指针,每个度为1的节点都有1个空指针,空指针总数为2n0+n1,又因为n0=n2+1,所以空指针的总数为n0+n1+n2+1=n+1。由此设想利用这些空指针来指向其前驱或后继。 引入线索二叉树正是为了加快查找节点前驱和后继的速度。 规定:若无左...

数据结构练习-线性表定义与基本操作

    B. 一个有限序列,不可以为空         C. 一个无限序列,可以为空     D.一个无限序列,不可以为空         解析:         在计算机科学中,线性表是一种基本的数据结构,用来存储一系列有序的元素。         选项A:一个有限序列,可以为空 有限序列:这意味着序列的长度是固定的,不会无限延伸,这与计算机资源的限制相符。在实际应用中,数据结构的大小通常是有限制的,...

C#面:简述 数组、链表、哈希、队列、栈数据结构特点,各自优点和缺点

C# 数组、链表、哈希、队列和栈是常见的数据结构,它们各自有不同的特点、优点和缺点。 数组: 特点:数组是一种线性数据结构,它由一组相同类型的元素组成,这些元素在内存中是连续存储的。优点:数组具有快速的随机访问能力,可以通过索引直接访问任意位置的元素。缺点:数组的大小是固定的,一旦创建后无法改变大小,需要预先知道数组的长度。插入和删除元素的操作比较低效,需要移动其他元素。 链表: 特点:链表是一种非连续的...

数据结构练习-算法与时间复杂度

加入了额外的抽象和管理层(如垃圾回收)。因此,低级语言在执行效率方面通常优于高级语言。         综合以上分析,选项①和④中的说法是错误的。因此,正确答案是 C. ①④。这些解析有助于清晰地理解数据结构和算法分析中的一些基础概念,尤其是对初学者来说。         笔记: 原地算法(In-place): 通常只需要固定的、常数量的额外空间。 时间复杂度O(n) vs O(n²): O(n) 在大多...

数据结构与算法学习笔记四---队列的表示和实现(C++)

目录 前言 1.队列的顺序存储方式的实现 1.定义 2.队列初始化 3.销毁 4.队列是否为空 5.队列长度 6.清空队列 7.队列头元素 8.入队 9.出队 10.完整代码 2.队列的链式存储方式的实现 1.定义 2.队列初始化 3.销毁 4.队列是否为空 5.队列长度 6.清空队列 7.队列头元素 8.入队 9.出队 10.完整代码 前言     队列也是一中受限的线性表,只能在表的一段进行插入操作...

学习笔记-数据结构-线性表(2024-04-16)

设计一个算法判断单链表中元素是否是递增的。 设计思想:双指针操作 变量说明: head表示链表头指针 p和q表示两个用来遍历链表的指针节点,且q始终在p之后 bool IsIncrease(LinkList *head){ // 代码优先判空,若为空链表,或者只有一个节点,一定是递增的 if(head==NULL || head->next==NULL) { return true; } // 使用两...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.021204(s)
2024-05-10 08:31:35 1715301095