首页
关于
Search
1
Java期末复习
196 阅读
2
《概率论与数理统计》重难点
140 阅读
3
Java模拟题
89 阅读
4
数据结构期末复习
55 阅读
5
爱心学校课程研发进度安排
47 阅读
个人记录
工作相关
经验分享
登录
Search
Yuxuan HONG
累计撰写
8
篇文章
累计收到
303
条评论
首页
栏目
个人记录
工作相关
经验分享
页面
关于
搜索到
8
篇与
的结果
2024-06-19
数据结构期末复习
大一下复习数据结构期末复习二叉树的遍历牢记递归思想。// 中序遍历 void mFind(Node* root) { if (root == nullptr) { return; } // 先递归遍历左子树 mFind(root->lc); // 访问当前结点 cout << root->data << " "; // 再递归遍历右子树 mFind(root->rc); }树和森林的转换参考视频树转森林:删除树的根节点,根节点的子树即为森林。森林转树:将森林的第一棵树作为树的根节点,其他树作为根节点的子树依次连接起来。哈夫曼树(Huffman Tree)带权路径长度:带权路径长度 = SUM(长度*权值)选择权值最小的两个节点作为左右子树。合并这两个节点并更新权值,重复以上步骤,直到只剩一个根节点。图入度和出度:在有向图中,如果一个人可以向多个人说话(即有多个人可以听他说话),那么他的“出度”就是他说话对象的数量。相对的,“入度”就是有多少人可以向他说话。深度优先搜索:D(Depth)FS(类似树的先序遍历)// DFS 深度优先搜索 // 从节点u开始进行深度优先搜索 void DFS(int u) { // 输出当前访问的节点u cout << u << " "; // 标记节点u为已访问 vis[u] = 1; // 遍历节点u的邻接表 递归访问所有未被访问的相邻节点 for (int i = head[u]; i != -1; i = edg[i].next) { int v = edg[i].to; if (!vis[v]) { DFS(v); } } }广度优先搜索:B(Breadth)FS(类似树的层序遍历)拓扑排序:每次选入度为0的点,然后删除这个点和它的出边最小生成树(Minimum Spanning Tree)参考视频Prim算法:从任一节点开始,每次选择权值最小的边连接一个新节点,直到所有节点都连接。Kruskal算法:将所有边按权值从小到大排序,依次选择不形成环的最小权值边,直到所有节点都连接。最短路径(Shortest Path)Dijkstra算法:用于单源最短路径,适合边权为非负的图,从起点开始逐步扩展最短路径,直到所有节点都找到最短路径。Floyd-Warshall算法:用于任意两点间最短路径,逐步优化所有点对的路径。二叉排序树(Binary Search Tree, BST)BST是一种特殊的二叉树,左子树所有节点的值都小于根节点的值,右子树所有节点的值都大于根节点的值。平衡二叉树、二叉排序树:任意节点左右子树的深度差≤1二叉排序树的调整:参考视频(调整LL,LR,RL,RR)B树和B+树B树:一种自平衡的多路查找树,节点可以有多个子节点,用于数据库和文件系统。B+树:B树的变种,所有叶子节点构成一个有序链表,更适合范围查询。散列表(Hash Table)散列表是一种数据结构,通过哈希函数将键映射到表中的位置进行存储,实现快速查找、插入和删除。排序算法插入排序(Insertion Sort):通过构建有序序列,对未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。下面这些都不稳定希尔排序(Shell Sort):插入排序的一种改进,分组进行插入排序,逐步减少分组数量,最终整体插入排序。快速排序(Quick Sort):通过分区将数组分成两部分,递归对两部分排序。// 交换两个元素的值(略) void swap(int &a, int &b); // 分区函数 int partition(vector<int> &arr, int low, int high) { int pivot = arr[high]; // 选择最后一个元素作为枢轴 int i = low - 1; // 指向较小元素的索引 for (int j = low; j < high; ++j) { if (arr[j] < pivot) { // 如果当前元素小于枢轴 ++i; swap(arr[i], arr[j]); // 交换arr[i]和arr[j] } } swap(arr[i + 1], arr[high]); // 将枢轴放在正确的位置 return i + 1; // 返回枢轴的索引 } // 快速排序函数 void quickSort(vector<int> &arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); // 获取分区索引 quickSort(arr, low, pi - 1); // 递归排序左子数组 quickSort(arr, pi + 1, high); // 递归排序右子数组 } }堆排序(Heap Sort):利用堆这种数据结构,将数组看成完全二叉树,构建最大堆,然后依次取出堆顶元素进行排序。
2024年06月19日
55 阅读
58 评论
0 点赞
2024-01-24
爱心学校第四讲补充学习材料
CSSCSS用于定义页面样式,实现布局与美化。选择器、属性、值的基本概念。CSS样式的三种引入方式:内联、内嵌、外部引入。布局与盒模型块级元素与行内元素的区别。盒模型的概念与组成部分。Flex布局与Grid布局简介。CSS动画与过渡利用CSS实现简单的动画效果。使用过渡实现平滑的样式变化。JavaScriptJavaScript是一种脚本语言,用于网页交互与动态效果。变量、数据类型、运算符的基本概念。控制流与函数补充:作用域与闭包的初步了解DOM与事件处理文档对象模型(DOM)的基本概念。事件的触发与处理。动态操作HTML元素与样式。
2024年01月24日
27 阅读
0 评论
1 点赞
2024-01-24
爱心学校课程研发进度安排
教学进度安排:课程介绍、开发环境搭建(PyCharm、MySQL安装与配置)简单的Python编程入门,版本控制系统的基础使用(Git)HTTP协议与Web基础知识、命名规范及其重要性【选择性】前端基础:HTML、CSS、JavaScriptPython Flask框架介绍与第一个简单应用GET和POST请求处理与前后端交互、搭建一个简单的Web应用编程思想:函数式编程与面向对象编程、代码重构与实践实践项目:应用编程规范和思想进行项目优化amis框架介绍与使用项目实践:整合amis框架优化前端界面基础数据库知识与MySQL操作数据库与Web应用的集成
2024年01月24日
47 阅读
53 评论
1 点赞
1
2