![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
OneTask
这个作者很懒,什么都没留下…
展开
-
笔记:C++STL关联容器之map
C++STL的map是一个类模板,属于关联容器,提供一对一的hash,自动建立key->value的映射,内部由红黑树实现。以一个map常用的场景阐述map的用法1. 实例化map, 关键字类型为string,值类型为int,利用map的关键字不可重复性,统计关键字(单词)出现的次数#include<map>typedef map<string, int...原创 2019-12-08 21:57:31 · 196 阅读 · 0 评论 -
笔记:构造AVL
#include<stdlib.h>#include <stack>#include <algorithm>#include <iostream>#include <map>using namespace std;struct AVLNode { int e; int bf = 0; //平衡因子 int h = ...原创 2019-11-26 23:42:13 · 147 阅读 · 0 评论 -
笔记:归并排序
1. 归并排序//归并排序(递归 归并,每个子问题都是对两个有序的子序列合并)void MERGR(int* arr, int len, int low, int mid, int high) { int* b = new int[high-low+1]; // 归并排序的空间复杂度 O(n) int left = low; int right = mid + 1; int i ...原创 2019-11-26 10:58:32 · 96 阅读 · 0 评论 -
笔记:选择排序(直接选择排序、堆排序)
1. 直接选择排序//选择排序(每次把未排序的子序列中的最小记录与arr[i]替换)void SERECTsort(int* arr, int len) { for (int i = 0; i < len - 1; i++) { int min = i; for (int j = i + 1; j < len; j++) //第pass趟排序后,前pass个序列有...原创 2019-11-26 10:57:44 · 73 阅读 · 0 评论 -
笔记:交换排序(冒泡排序、快速排序)
1. 冒泡排序//冒泡排序void BUBsort(int* arr, int len) { bool sorted = true; //若某一趟没有发生交换,则表示已有序,提前停止比较 int pass = 0; while (sorted) { sorted = false; for (int i = 0; i < len - 1 - pass; i++) { /...原创 2019-11-26 10:54:50 · 76 阅读 · 0 评论 -
笔记:插入排序(直接插入排序、折半插入排序、2路插入排序、希尔排序)
1.直接插入排序//插入排序(直接插入)void INSERTsort(int* arr, int len) { for (int i = 1; i < len; i++) { for (int j = i - 1; j >= 0; j--) { //第pass趟排序后,前pass-1个序列有序但非最小 if (arr[j] <= arr[j + 1]) ...原创 2019-11-26 10:48:50 · 115 阅读 · 0 评论 -
笔记:树、图结构及相关算法
前言数据结构是程序设计的灵魂。目录1. 树:主要记录二叉树的存储(#号法创建,二叉链表法存储)和遍历(递归法和非递归法);2. 图:主要记录图的存储(邻接矩阵)和遍历(DFS、BFS)、最小生成树(Prim算法)、最短路径(Dijkstra算法);正文1.二叉链表法存储二叉树的节点说明:typedef char vertexType;//定义树的节点struc...原创 2019-11-16 23:18:06 · 332 阅读 · 0 评论 -
练习:反转单链表中m到n节点(python实现)
题目描述:输入一个单链表:1,2,3,4,5,6输入指定反转的节点起始位置m和结束位置n:3,5输出反转后的链表:1,2,5,4,3,6代码实现:1. 定义节点Node,Node包含一个值域 item 保存每个节点的数值,和一个指针域 next 保存下一个节点的地址class Node: def __init__(self,item): self....原创 2019-06-30 19:21:34 · 1250 阅读 · 0 评论 -
练习:统计数组中元素重复次数并排序(Python实现)
题目描述:统计数组中元素重复次数并排序解题思路:根据寻找数组中出现次数最多的元素的套路,扩展到对所有元素出现的次数统计排序1、定义sortItemCount类,包含两个list:items用于保存数组array中的元素item、counts保存对应item的重复个数,和一个int变量lengthclass sortItemCount: def __init__(self):...原创 2019-07-05 11:26:13 · 3107 阅读 · 0 评论 -
练习:给定一个只包含0和1的字符串,相邻的01消除,统计最后剩下的字符串个数(Python实现)
题目描述:输入:只包含‘0’和‘1’的字符串要求:‘0’和'1'相邻即消除输出:剩下的字符串个数思路:1)遍历字符串数组,若第i个元素和第i-1、i+1元素相同,则元素i不被消除2)注意,在消除原有的‘ 0 1 ’和‘ 1 0 ’后,可能重组得到新的‘ 0 1 ’或‘ 1 0 ’,所以要经历多次判断,直到不再有元素被消除代码实现:1、自定义栈Stack,包含一个存储...原创 2019-07-01 19:05:57 · 4691 阅读 · 0 评论 -
数据结构----二叉树(C#实现)
该帖只做笔记使用----------------------------------------------------------------------------------------------------------------------------------------------------------------------构建树的类Tree.cs初始化树...原创 2020-03-06 14:13:14 · 316 阅读 · 0 评论