自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 [Data Structure]11. 图的实现和遍历

树和二叉树的知识已经完结了,我会尽快把这两章的代码补起。今天先把图的知识做一个整理。所谓图,就是每一个结点都可能有不止一个邻接点,所以就不像树一样具有“父子”、“兄弟”的关系。在图中,所有的结点都只有“邻居”这种概念。一、图的实现图的实现主要要求是要呈现出结点之间的连接关系,比如谁连向谁、权值是多少,这些在有权有向图以及DAG中都是十分关键的。实现方法课本上介绍了两种,一种是采用二维数组,以...

2019-11-13 18:29:17 155

原创 [Data Structure]07.栈的应用

国庆假期过完了,今天是假后的第一节数据结构课,内容虽然不多但都是都很精悍。今天主要是接着之前的内容讲了一下栈的应用。众所周知,栈是FILO的,由这个特性,可以产生多种应用。我应该不会都写成代码,但是原理都还是要弄清楚。1、汉诺塔问题我高中的时候就看过这个问题,感觉它间接促成了我放弃NOIP竞赛——我发现我太菜了。那个时候我不能理解递归recursion,就不太理解这个问题是怎样被解决的。我在C...

2019-10-20 11:35:40 99

原创 [Data Structure]08.基于数组的队列

假期之后,数字逻辑课的东西太多了,于是我采用了牺牲数据结构的数字逻辑保护法高强度复习数字逻辑。结果就是现在有点C++生疏了。。今天刚点开Xcode剧烈不适应。今天的课的内容主要是队列和队列的应用。关于队列,有一点可以多讨论一下的就是它的存储方式。我们设置rear指向队尾的元素,front指向队头的元素。(rear和front可以是指针,可以是数组下标,取决于你的ADT形式)由于队列是FIFO,...

2019-10-14 11:54:07 115

原创 [Data Structure]06.栈及其应用

栈遵守“First In Last Out”的原则,使得插入元素和取出元素的操作都变得十分简单,时间复杂度都是ø(1). 栈中元素的放入叫做压栈Push,元素的删除叫做弹栈Pop。栈的原则无需再赘述,本次日记我主要想记录老师讲的一些比较重要的栈的应用。一、数组栈 Array-Based Stacks在定义数组栈的时候发现,需要有一个指示器用来指明现在数组的第几位可以用来推入元素。这个指示器并不...

2019-09-25 18:51:13 76

原创 C++标准模版库STL的介绍

有关STL部分,面向对象课程中我老师没有cover到。其实他当时一带而过了,我也没当回事,现在发现在数据结构里经常要用到,于是就只能找网上的网课来看了。由于看的是台湾交通大学的课程,那边的翻译和大陆这边有些区别,于是有一些直接记了英文笔记,以免产生歧义。顺便推荐一下这个课程,我觉得老师讲得挺清晰的。课程地址:linkSTL = Standard Template Library定义出来的模版...

2019-09-25 16:12:34 107

原创 [Data Structure]05.字典

在处理数据的时候,我们经常要用到储存和查找两个功能。数据结构这门课其实就是在找出各种方式来更快地处理不同的数据。字典可以说是一个数据接口,并为用户提供了查找、插入、删除的功能。为了简化查找,在对比数据库中的数据和被查找元素时,我们并不会将该数据类中的所有元素拿出来比较。如同英汉字典有中英文对照一样,数据结构中的字典同样有“key-value”,即查找关键信息key所对应的数据,可以简化搜索的过程...

2019-09-23 15:38:05 84

原创 [Data Structure]04.双链表和可利用空间表

可利用空间表(freelist)其实是一种栈stack的结构。它的原理就是重载链表类的new和delete运算符,使得分配空间变得更为智能。具体过程如下:freelist是结点node类的static成员(说明它是共享于所有链表的)其中全都是空的指针以栈的形式存放,当构造对象的时候,调用重载的new运算符,即使用freelist中的闲余指针。而当删除对象时,调用delete运算符,然而该对象所对...

2019-09-16 14:49:06 244

原创 [Data Structure]03.单向链表

相比起数组列表,单向链表更便于插入和删除(时间杂度更小),而且其内存位置较为灵活,在逻辑上(logic)是相连的,但是在物理上(phisical)却是不联通的。链表的curr与数组列表略有所不同。链表的remove和assert动作,都是对curr指针后的一个数据/位置做出的变化。为了简化分类讨论,我们规定头结点head指针为空,里面不放任何元素数据,其实就是把它当作一个普通的结点。但要注意,t...

2019-09-11 20:07:46 103 1

原创 [Data Structure]02.数组列表

需注意,数据结构中的数据类型储存的都是“结构”,如下面的数组列表,虽然是基于数组,但是不像之前acmn中那样一个数据类型表示一个数,而是表示一个列表。故声明私有成员时,E *listarr; 用于存放数组的指针位置我的代码析构函数还有一点问题。之后再来纠正。#include <iostream>using namespace std;template <typenam...

2019-09-09 11:44:57 73

原创 [Data Structure]01.二分法搜索

在一个数组中进行数据查找有很多方法, 其中顺序查找(Sequence Searching)的时间杂度是O(n)。而二分法(Binary Searching)针对于有序排列的数组,可以较高效地找出所寻的数字(对应的数组下标),其时间杂度为O(log n)。这个算法还不算复杂,这里直接贴上我的代码。#include <iostream>using namespace std;int...

2019-09-09 00:01:52 78

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除