DataStructure(数据结构)
关于数据结构的博客
Earnest~
~ing
莫听穿林打叶声
何妨吟啸且徐行
竹杖芒鞋轻胜马
谁怕?
一蓑烟雨任平生
料峭春风吹酒醒
微冷
山头斜照却相迎
回首向来萧瑟处
归去
也无风雨也无晴
展开
-
【啊哈!算法】枚举!很暴力
Content枚举!很暴力坑爹的奥数炸弹人枚举!很暴力坑爹的奥数炸弹人火柴棍等式数的全排列坑爹的奥数枚举算法的思想,把所有可能的情况全列出最简单的枚举算法:计算 _3 * 6528 = 3_ * 8265,填入相同的数for (int i = 1; i < 10; i++) { if((i * 10 + 3) * 6528 == (30 + i) * 8265){ cout << i; }}炸弹人...原创 2020-07-06 17:13:49 · 464 阅读 · 0 评论 -
【啊哈!算法】栈、队列、链表
Contents栈、队列、链表队列栈、队列、链表队列栈纸牌游戏 小猫钓鱼链表模拟链表队列队列的三个基本元素:一个数组,两个变量#include<iostream>using namespace std;struct queue { int data[100]; //队列主体,用来存储内容 int head; //队首 int tail; //队尾 };typedef struct queue Queue; //将 struct queue原创 2020-07-04 10:13:20 · 386 阅读 · 0 评论 -
【Mark】啊哈!算法
Contents一大波数正在靠近——排序栈、队列、链表一大波数正在靠近——排序简单桶排序,真正的桶排序要比这个复杂一些;时间复杂度 O(M + N),这是一个非常快的排序算法;要命的是,它非常浪费空间!Question:10以内的数字排序#include<iostream>using namespace std;int main(){ int a[11],i,...原创 2020-02-21 13:26:20 · 633 阅读 · 0 评论 -
【DS】ADT_Triplet三元组的实现代码
代码如下#include<iostream>#include<cstring>#include<cstdlib>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLO...原创 2020-01-15 10:27:50 · 638 阅读 · 0 评论 -
【DS】ADT_起泡排序的实现代码
代码如下#include<iostream>using namespace std;#define TRUE 1#define FALSE 0void bubble_sort(int a[], int n) { //将a中整数序列重新排列成自小至大有序的整数序列 bool change; for(int i = n - 1, change = TRUE; i ...原创 2020-01-13 20:55:50 · 401 阅读 · 0 评论 -
【Mark】数据结构(C语言版)
点击目录传送ฅʕ•̫͡•ʔฅ第1章 绪论值得记的第1章 绪论编写好的程序,必须分析待处理的对象的特性以及各处理对象之间存在的关系在对弈问题中,计算机操作的对象是对弈过程中可能出现的棋盘状态——称为格局数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程数据结构的定义为...原创 2020-01-12 23:32:30 · 1300 阅读 · 0 评论 -
【Mark】内部排序
在内存中按关键字有序判断排序是否稳定,看排序前后相同的次关键字顺序是否改变按排序时内存工作量区分简单排序( O(n2) )高级排序( O(nlogn) )基数排序( O(d • n) )按原则分类插入排序直接插入排序(稳定,适合n较小,基本有序;顺序查找插入位置)折半插入排序(折半查找插入位置,稳定)2-路插入排序(循环链表,类似于左小右大)表插入排序(不移动记录,静态链...原创 2020-01-05 12:33:53 · 236 阅读 · 0 评论 -
【Mark】查找
静态查找顺序查找(ASL:(n+1)/2)折半查找(ASL:log2(n+1) - 1;n<50时,用层数乘以结点数比较好,层次数 = 查找次数)斐波那契查找插值查找分块查找(索引顺序查找)次优查找树(查找概率不同时)动态查找二叉排序树(二叉查找树)二叉平衡树(转)B树,B+树(文件)哈希表(不比较,只需判断是否为空)...原创 2020-01-04 15:49:14 · 279 阅读 · 0 评论 -
【Mark】树和二叉树
点击目录传送ฅʕ•̫͡•ʔฅ树的定义和基本术语二叉树遍历二叉树和线索二叉树树的定义和基本术语第三类基本结构——树树的结构定义是一个递归的定义树的表示:1.嵌套集合 2.广义表 3.凹入表示法一般,有层次的结构,都可导致一个树结构树的结点:包括一个数据元素和若干指向其子树的分支度----分支深度----层数树与森林的互相转换(左孩子右兄弟)二叉树定义,1.至多两棵子树 2...原创 2019-12-31 13:32:48 · 481 阅读 · 0 评论 -
【Mark】KMP算法
串的模式匹配:指的是子串的定位主串:S 指针i模式串(子串):T 指针jBF算法:S中从头开始一个一个匹配,失配后指针i回溯到开始匹配的下一位(从S中上次匹配开始的位置的下一位开始匹配)一般是O(n + m)最坏是O(n * m)KMP算法:指针i不回溯重点:部分匹配(已经匹配的串)失配后因为i不回溯,所以应该找模式串中第k个字符,下次匹配时k与i对齐后开始匹配,相当...原创 2019-12-28 17:42:16 · 255 阅读 · 0 评论 -
【Mark】栈
栈的组成:一个指针,一个数组逻辑结构:线性物理结构:顺序存储或链式存储特点:操作受限(位置)LIFO 后进先出举个栗子:判断回文,利用栈,很方便:#include<iostream>#include<cstring>using namespace std;int main(){ char a[124], s[124]; int i, len,...原创 2019-12-28 13:51:08 · 203 阅读 · 0 评论 -
【Mark】顺序线性表的表基址-指针与数组的关系 19_12_7
点击目录传送ฅʕ•̫͡•ʔฅ顺序线性表的表基址(ElemType * elem)也就是说,一级指针可以表示一维数组,二级指针可以表示二维数组,以此类推顺序线性表的表基址(ElemType * elem)指的是一个数组假设 typedef int ElemType,即 int * elem那么这个elem就是一个int型数组的名字为了让用户更方便获取一维数组的起始地址,编译器在定义数组...原创 2019-12-07 21:42:15 · 1715 阅读 · 3 评论 -
【理解】队列 :一个数组,两个变量
点击目录传送ฅʕ•̫͡•ʔฅ认识队列将队列的三个基本元素(一个数组,两个变量)封装为一个结构体类型Algorithm认识队列#include<iostream>using namespace std;int main(){ int q[124] = {6, 3, 1, 7, 5, 8, 9, 2, 4}, head, tail; //初始化队列 head = 0;...原创 2019-11-13 22:36:17 · 467 阅读 · 0 评论 -
【记录】读懂数据结构
目录第一章 绪论1.1 什么是数据结构1.2 基本概念和术语第一章 绪论分析待处理对象的特性,以及各处理对象之间的关系1.1 什么是数据结构具体问题 –抽象出–>数学模型 -->设计算法 -->编出程序 -->测试、调整 –直至 -->最终解答如何抽象?寻求数学模型的实质:分析问题,提取操作的对象,找出这些操作对象之间含有的关系,用数学语...原创 2019-10-20 00:04:10 · 378 阅读 · 0 评论 -
【记录】数据结构知识点总结
目录第一章 绪论记录第一章 绪论1.1 什么是数据结构1.必须分析待处理对象的特性以及各处理对象之间存在的关系。2.数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科1.2 基本概念和术语3.数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并且被计算机程序处理的符号的总称。4.数据元素(data ...原创 2019-09-15 23:31:05 · 691 阅读 · 1 评论 -
【理解】链表的初始化与遍历
点击目录传送ฅʕ•̫͡•ʔฅ理解我的链表9.20 今天下午先到这( ̄▽ ̄)"#include<iostream>#include<cstdlib>using namespace std;//要敲出一个属于我的链表。。 //需要头结点、头指针、结点的结构体、还有各种方法(一个一个的来)。 typedef struct Node{ //结点的结构体成员...原创 2019-09-20 17:24:26 · 1232 阅读 · 0 评论 -
【理解】数据结构实验题
点击目录传送ฅʕ•̫͡•ʔฅ实验1 多个数的求和、平均、最大值、最小值记录数据结构练习题实验1 多个数的求和、平均、最大值、最小值题目:通过键盘输入整数,直到遇到一个负数为止,该负数不考虑在内,求所输整数的合、平均值、最大值和最小值,并在屏幕上输出。#include<iostream>#include<stdio.h> //需要时直接将cout改成prin...原创 2019-09-18 10:22:11 · 1020 阅读 · 0 评论 -
【理解】数据结构 顺序线性表
点击目录传送ฅʕ•̫͡•ʔฅ记录数据结构 顺序线性表(按照课本的伪代码给的函数及其参数)终于理解了一点线性表、结构体、链表、指针之类的东西,先记一下#include<iostream>#include<cstdlib>using namespace std;/*写在前面:在经历了这么多的探索与学习之后,终于搞懂了顺序表的原理所在,我觉得最重要的就是对于...原创 2019-10-05 23:17:20 · 314 阅读 · 3 评论 -
【理解】链表 数据结构
点击目录传送ฅʕ•̫͡•ʔฅ19.10.7记录数据结构 链表(按照课本的伪代码给的函数及其参数)记下看函数…19.10.7#include<iostream>#include<cstdlib>using namespace std;typedef int ElemType;typedef struct LNode { //结点类型 ElemTyp...原创 2019-10-07 22:21:33 · 359 阅读 · 0 评论 -
【理解】顺序线性表(数组实现)
目录La,Lb按值非递减,归并为Lc编程实现:顺序线性表的操作数据结构作业的两个应用题La,Lb按值非递减,归并为Lc应用1代码片.//数据结构算法练习//将类C转化成C //算法2.2 /*#include<iostream>using namespace std;int main(){ int a[3]={1,3,3}; int b[2]={2,4};...原创 2019-09-15 19:05:15 · 376 阅读 · 0 评论 -
【理解】初识链表
目录链表链表记录代码源自https://blog.csdn.net/calculate23/article/details/79758845仅以此博客记录我学习数据结构链表时对链表代码的理解暂时还没能力独自编写链表…记在博客上方便随时看注释多为我个人理解代码片.#include<iostream>#include<cstdlib>using na...原创 2019-09-15 12:40:53 · 243 阅读 · 0 评论