01 2025 档案
12月17日每日总结
摘要:今日主要学习了图中寻找最小生成树的算法:克鲁斯卡尔算法和普利姆算法 克鲁斯卡尔算法: 构建边结构体:用于存储图中的边信息,包括边的两个端点以及边的权值。 typedef struct Edge { int src; int dest; int weight; } Edge; 对边进行排序:可以使用
阅读全文
12月26日总结
摘要:今日主要学习了图中寻找最短路径的算法:迪杰斯特拉算法和弗洛伊德算法 迪杰斯特拉算法: include <stdio.h> include <stdlib.h> include <limits.h> include <stdbool.h> // 找到未确定最短路径的顶点中距离源点最近的顶点 int m
阅读全文
12月25日总结
摘要:今日主要学习了图的两种遍历方法:深度优先遍历和广度优先遍历 深度优先搜索(DFS) include <stdio.h> include <stdlib.h> define MAX_VERTICES 100 // 图的结构体,使用邻接表存储 typedef struct Graph { int num
阅读全文
12月24日总结
摘要:今日踏入数据结构中 “图” 的奇妙世界,相较于之前学习的线性结构和树结构,图更为复杂且充满多样性,带来了全新的知识挑战与思维拓展。 概念上,图由顶点(vertex)和边(edge)组成,顶点代表图中的节点,边则用于连接这些顶点,体现它们之间的关系。根据边是否有方向,图可分为有向图和无向图。有向图的边
阅读全文
12月23日总结
摘要:今日学习了二叉树的相关操作: 一、遍历操作 深度优先遍历: 前序遍历(根 - 左 - 右): 递归实现:从根节点开始,首先访问根节点,然后递归地对左子树进行前序遍历,最后递归地对右子树进行前序遍历。示例代码如下(以 C 语言为例): typedef struct TreeNode { int val
阅读全文
12月22日总结
摘要:概念上,二叉树是树的一种特殊形式,每个节点最多有两个子节点,分别称为左子节点和右子节点。这种简洁的结构特性使得许多操作在实现和理解上相较于普通树更为规整。它同样有根节点,作为整个二叉树的起始点,从根节点出发,依据节点的左右分支关系层层拓展,形成二叉树的层次架构。 学习二叉树的操作时,遍历无疑是核心要
阅读全文
12月21日总结
摘要:概念上,树是一种非线性的数据结构,它由节点(node)组成,有一个特殊的节点被称为根节点(root),从根节点开始,通过分支连接子节点,子节点又可以有自己的子节点,如此层层嵌套,形成类似现实世界中树的形状,只不过是倒置的,根节点在最上方。树具有层级性,根节点为第 0 层,往下依次递增。节点的度(de
阅读全文
12月20日总结
摘要:今日学习了队列的相关操作: 定义: define MAX_SIZE 100 // 假设队列最大容量为 100 typedef struct Queue { int data[MAX_SIZE]; int front; int rear; } Queue; 初始化: void initQueue(Qu
阅读全文
12月19日总结
摘要:今日深入学习了数据结构中的队列,它与之前所学的栈有着截然不同的特性。 概念上,队列遵循先进先出(FIFO)原则,就如同日常生活中的排队场景,先到的人先接受服务,最先进入队列的元素最先被取出。它有队头(front)和队尾(rear)两个关键指针,分别用于标识队列的起始位置和末尾位置,元素从队尾进入,从
阅读全文
12月18日总结
摘要:今日学习了栈的相关操作: 初始化: define MAX_SIZE 100 // 假设栈的最大容量为 100 typedef struct Stack { int data[MAX_SIZE]; int top; } Stack; // 栈的初始化函数 void initStack(Stack *s
阅读全文
12月17日总结
摘要:今日重点学习数据结构中的栈,它遵循后进先出原则,类似单端进出的储物箱,顶部是唯一的数据出入口,这使其在处理特定顺序问题上优势显著。 学习中探究了栈的基本操作,初始化时用结构体表示栈,含存储数据的数组(或链表)与指示栈顶的指针 top,初始 top 设为 -1 代表空栈。入栈是先让 top 加 1 指
阅读全文
12月16日总结
摘要:今日学习了双链表的相关操作: 一、创建双链表 创建双链表的第一步是定义节点结构体,它包含数据域、指向前驱节点的指针 prev 和指向后继节点的指针 next。 // 双链表节点结构体定义 typedef struct DoubleListNode { int data; struct DoubleL
阅读全文
12月15日总结
摘要:今日全身心投入到数据结构中双链表的学习,相较于之前接触的单链表,双链表有着独特的魅力与复杂性。 概念上,双链表的每个节点不仅包含指向后继节点的指针(如同单链表),还增设了指向前驱节点的指针。这一设计使得链表在双向遍历上独具优势,无论是从表头向表尾推进,还是反向操作,都能轻松实现,大大增强了数据访问的
阅读全文
12月14日总结
摘要:今日学习了,单链表的基本操作: 定义: typedef struct ListNode { int data; struct ListNode *next; } ListNode; 初始化: void insertAtHead(ListNode **head, int value) { ListNo
阅读全文
12月13日总结
摘要:今日深入学习了数据结构中的单链表,收获颇丰。 在概念理解上,单链表是由一系列节点组成的数据结构,每个节点包含数据域和指向下一节点的指针域,通过指针依次相连,形成一条线性链状结构。与数组相比,它的优势在于动态分配内存,无需预先指定大小,能灵活地进行插入和删除操作。 学习过程中,重点掌握了单链表的基本操
阅读全文
12月12日总结
摘要:今日复习了线性表中顺序表的相关操作 初始化: void InitList(SqList &L){ //申请存储空间 L.data = (int*)malloc(InitSize*sizeof(int)); L.length = 0; L.MaxSize = InitSize; } 插入: bool
阅读全文
12月11日总结
摘要:今天复习了顺序表,顺序表是线性表的一种存储结构,它把线性表中的所有元素按照其逻辑顺序,依次存储到从计算机存储器中指定存储位置开始的一块连续的存储单元中。简单来说,就是用一组连续的内存单元来存放数据元素,数据元素之间的逻辑关系通过物理存储位置相邻来体现。 优点有: 随机访问效率高:由于元素存储在连续的
阅读全文
12月10日总结
摘要:今天在哔哩哔哩学习了web前端页面的开发的相关知识,Web前端页面的开发是构建和优化网站用户界面的过程,主要包括实现用户界面的结构(HTML)、样式(CSS)和交互(JavaScript)功能。以下是对web前端页面开发的具体介绍: HTML:HTML用于定义网页的结构和内容,是构建网页的基础。通过
阅读全文