![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
-yyqx-
这个作者很懒,什么都没留下…
展开
-
数据结构---实现基于静态数组的顺序表的基本操作
实现基于静态数组的顺序表的以下基本操作: 首先先定义一个结构体类型seqlist( arr【】,size(有效的元素个数)),预定义一个数组的最大长度,将整型数据变量typedef为datatype,为了以后在插入删除别的类型时方便修改初始化 void InitSeq(seqlist *s) 将数组的size置为0,不需要给每个元素进行赋值,尾插 void SeqLis...原创 2017-12-10 18:07:19 · 684 阅读 · 0 评论 -
数据结构---用顺序表实现栈的基本操作
顺序表实现栈 顺序栈:栈的顺序存储结构,是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序 栈中的位置。 栈在数据结构中也是一个比较重要的结构,它有一个重要的特性是:先进后出。先入栈的元素最后出栈。具体结构如下: 在顺序栈中有三个元素,一个是存储数据的数组。还有一个用于存储当前顺序栈的有效大小。另外一个就是这个顺序栈的容量。...原创 2018-04-24 21:23:09 · 2090 阅读 · 1 评论 -
C++---实现简单的带头循环双向链表
C++实现简单的带头循环双向链表 带头双向循环链表听着感觉好像很难的样子,其实,它的实现相对比较简单,它的前驱结点与后继结点都已知,也不需要再遍历得到指针。 在构造链表的时候,记得要初始化头结点。还有在操作前后指针的时候,要记得将指针保存好,得理清楚这几个结点的关系,不然就会导致有些结点丢失。 List.cpp#include <iostream>#in...原创 2018-04-19 13:03:39 · 830 阅读 · 0 评论 -
c++---实现动态线性表
c++实现动态线性表 之前在学习c语言的时候用c语言实现了动态线性表。现在再使用c++实现一下动态线性表。 相关数据结构方面就不多说了。在之前的博客里也有。下面就直接来实现吧。 这里使用指针来遍历数组,这样在算size,capacity的时候,直接用指针相减的方式就可以得到元素个数,以及容量。Vector.h#include <iostream>...原创 2018-04-19 12:01:09 · 685 阅读 · 0 评论 -
数据结构--带头结点的双向链表
带头结点的双向链表 之前用c语言写了单链表,单链表是每个结点结构体中包含一个指针,指向下一个结点,还有一个数据类型,用于存储当前结点的值。单链表的结构简单,所以会导致在有时候,它有一些弊端,比如需要访问使用某一个结点的前一个结点的时候,就需要重新遍历一次链表来查找这个结点。所以在大多数情况下我们都选择使用双向链表。 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,...原创 2018-04-22 19:38:22 · 8787 阅读 · 2 评论 -
数据结构---布隆过滤器
布隆过滤器原创 2018-04-03 18:28:04 · 205 阅读 · 0 评论 -
数据结构---位图的实现
在哈希表中,是用一个数组对一个集合进行存储,用于查询查找,在存储时需要将元素的值以及相关信息都要存储进去,就是将其整个结构体都存储与数组的一个位置中。但有时候并不需要知道那么多关于该元素的信息,只是想知道在这个集合中是否存在有某一个元素。这时候据需要使用位图了。位图也时候一种基本的数据结构,位图是与哈希表有一些联系的,功能上是有一定的相同之处。是将哈希表中用于存储的数组变为了一个二进制位,一个...原创 2018-04-01 19:48:47 · 304 阅读 · 0 评论 -
数据结构---哈希表的C语言实现
构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。 说到哈希表,,首先就得说到哈希函数,哈希函数是用来得到给定key值的在哈希表中的存储位置的。 哈希函数也并不是固定的,可以自己根据情况来定,一般常用常见的有直接定制法,除留余数法,平方取中法,折叠法,随机数法,数学分析法。 当...原创 2018-03-06 17:58:46 · 45669 阅读 · 7 评论 -
数据结构---非递归实现二叉排序树
非递归实现二叉排序树 二叉树的定义就是根据递归来定义的,所以用递归实现比较简单,非递归就相对来说比较复杂。 下面就说一说搜索二叉树的非递归操作。 void SearchTreeInsert(SearchTreeNode **r...原创 2018-03-10 18:29:26 · 2111 阅读 · 1 评论 -
数据结构---递归实现二叉排序树
二叉排序树的实现 二叉排序树(简称BST)又称二叉查找(搜索)树,其定义为:二叉排序树或者是空树或者是满足如下性质的二叉树: 1.若它的左子树不为空,则左子树上所有的结点的值都小于根结点的值 2.若它的右子树不为空,则右子树上的所有节点的值都大于跟结点 的值 3.它的左右子树也分别为二叉搜索树 二叉排序树还有一...原创 2018-03-10 13:39:20 · 3661 阅读 · 0 评论 -
数据结构---哈希表的实现(2)
哈希表的开散列的实现开散列法:首先是对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头节点存储在哈希表中。 如下图所示 头文件(hashtable.h)#pragma once#define HashMaxSize 1000 //哈希表所能容纳的最大数量#defi...原创 2018-03-06 21:32:21 · 296 阅读 · 0 评论 -
数据结构---链式栈的实现
之前用顺序表实现了栈,今天用链表来模拟实现一个栈。之前也都说了,栈的最大特性就是先进后出,先入栈的元素后出栈。 下面这张图,就是我画的入栈出栈示意图。 第二个是入栈。第三个是出栈,a,b元素是先入栈的,入栈是从头节点的下一个元素开始入栈,出栈也是这里,都是只改变头指针的下一个元素就行。由于是这样的,所有链式栈实现起来比较简单,不像顺序栈那样,需要大规模挪动数据。 好了,下面就...原创 2018-04-25 18:53:05 · 275 阅读 · 0 评论