
数据结构
输出是最好的学习
这个作者很懒,什么都没留下…
展开
-
堆栈的那些事儿
前言前面聊了线性表,这次来聊一些非常重要的数据结构——堆栈。关于堆栈,我们可以理解为我们在使用浏览器的浏览网页的时候,我们点击返回按钮的时候总是返回到我们最近一次浏览的网页,而不是我们最开始浏览的网页。另外我们可以用厨房的盘子来比喻,我们需要使用盘子的时候是用最上面的盘子,我们用好以后放回去,也总是放在最上面,这些都是堆栈,其主要特点就是先进后出。对于其实现方法,我们仍然通过数组实现和链表实现...原创 2018-04-14 15:46:27 · 145 阅读 · 0 评论 -
堆栈的那些事儿(二)
前言上一个提到了通过数组和链表来实现堆栈,这里我们通过C++中的stl来实现堆栈。毕竟我们在实际应用的时候几乎不会自己去封装stack这样的数据结构,都是使用已经提供好的。代码#include<iostream>#include<stack>using namespace std;int main() { stack<int> s;...原创 2018-04-14 16:04:19 · 169 阅读 · 0 评论 -
线性表的那些事儿
前言现在已经大三,才开始系统的学习算法,虽然有些晚,但是因为之前有一些基础,学起来进度也挺快,不失为一件好事。在学习的过程中,必不可少的需要去复习数据结构,那么今天就从最基础的线性表开始聊起。我们都知道线性表是最简单的一种数据结构,但是他可以做的事情很多,因为表中的每一个节点都可以表示很多信息,一个数字、一个人的所有信息、一本书……线性表的实现可以是顺序实现,也可以是链式实现。顺序实现也就是通...原创 2018-04-11 00:41:08 · 171 阅读 · 0 评论 -
线性表的那些事儿(三)
前言前面两个文章通过C语言自己实现List链表,但是我们在实际应用过程中,大多多时候都是使用已经封装好的。例如在C++中,我们可以使用stl提供的list,在Java中,也可以使用util中提供的List。今天就通过C++来实现对List的操作代码实现#include<iostream>#include<list>using namespace st...原创 2018-04-14 00:49:28 · 150 阅读 · 0 评论 -
队列的那些事儿
前言前面描述了堆栈是先进后入的方式,队列则是我们传统的先进先出方式,例如排队买票,如果先去的人肯定是先买到票,后去的人则是后买到票。我们实现的时候仍然采用数组和链表的形式分别实现数组实现#include<stdio.h>#include<stdlib.h>#define MAX 5// 定义队列结构体typedef struct queue {...原创 2018-04-21 11:17:28 · 155 阅读 · 0 评论 -
队列的那些事儿(二)
前言我们前面说了队列的顺序实现,我们如果采用链表的实现方式当然是没什么问题的。但是如果我们采用数组的顺序实现,我们会发现一个问题。例如我们数组长度为10,我们入队列5个,然后出队列5个,接下来入队列就是从下表为5的开始进入队列,一直进入到9,那么我们就判断队列已经满了,但是实际上我们的0-4是空余的。因此我们想到可以采用循环队列的方式实现。循环队列对于循环队列,我们主要有两种实...原创 2018-04-21 11:54:14 · 195 阅读 · 0 评论 -
队列的那些事儿(三)
前言使用数组和链表分别实现了对联,这里通过C++中的stl来实现队列。代码#include<iostream>#include<queue>using namespace std;int main() { queue<int> s; //入队列 for(int i=0; i < 6; i++) s...原创 2018-04-21 12:04:00 · 162 阅读 · 0 评论 -
几种查找方法
前言在一个数组中,对于数据的查找方法有多种,下面介绍几种最常见的元素查找1、普通查找这是最简单粗暴的查找方式,通过遍历所有元素,找到最数组中的位置。通过代码简单实现#include<stdio.h>#include<stdlib.h>#include<math.h>#define MAX 10int searchNum(int a[],...原创 2018-04-21 16:36:06 · 10972 阅读 · 0 评论