数据结构
文章平均质量分 58
穿着铠甲的女孩
努力学习的小白,希望我的文章能对你有所帮助
展开
-
哈希表与哈希函数
哈希表(散列表):基于哈希函数的一种查找表/一种根据关键字直接进行访问的数据结构,哈希表(散列表)建立了关键字和存储地址之间的映射关系。哈希函数(散列函数):把查找表中的关键字映射成该关键字对应地址的函数冲突:哈希函数把两个或者两个以上的关键字映射到同一地址。哈希函数(散列函数)构造方法原则:(1)散列函数的定义域包含全部关键字、值域则依赖于散列表的大小或地址范围(2)散列函数计算出的地址等概率、均匀的分布在全部地址中,减少冲突的发生(3)散列函数尽量简单,较短时间计算出关键字的散列地址常用原创 2021-11-14 15:36:36 · 508 阅读 · 0 评论 -
到底什么是顺序表的随机读取?
要读取a[5](随机选一个数读取,所以叫随机存储),可以直接从地址a+5读取;但是链表,只能从表头开始一个一个读取下一个节点地址,读到第6个才找到。本人初学时对于顺序表的随机存取和查找总是混淆,无论是顺序表的查找还是链表的查找他们的时间复杂度都为O(n),我就很纳闷那到底顺序表的优点是如何体现的呢?顺序表是利用数组存储的,所谓的随机存取,即当你知道数组的首地址后你可以读取任何一个位置的元素,设ai序号为i 的元素的存储位置为Li,每个元素长度为d,则序号为j的元素的存储位置为Li + d(j - i),原创 2020-10-06 17:32:41 · 8884 阅读 · 5 评论 -
单链表创建的头插法,尾插法,插入、删除、获取元素,删除整表
/*程序功能:链表的基本操作1、初始化链表2、头插法创建链表3、尾插法创建链表4、删除、添加结点5、删除链表6、获取链表中第i个位置的值7、单链表整表删除注意:在进行链表的定义时链表是以结点为构成单位,要构建结点再一个一个的对结点进行操作,而不是直接向顺序存储结构直接定义一个顺序表*/#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROE 0#define TRUE 1#define原创 2020-10-05 16:28:10 · 803 阅读 · 0 评论 -
使用C语言实现-顺序表初始化、创建、插入、删除操作
#include <stdio.h>#include <stdlib.h># include <malloc.h>#define MAXSIZE 100#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int ElemType;typedef int Status;typedef struct{ ElemType *pList; int sqSize;原创 2020-09-29 16:36:58 · 2833 阅读 · 0 评论 -
线性表的链式存储结构详解
前言:为什么会出现线性表的链式存储结构呢?因为顺序存储结构是采用一块连续的存储单元存储线性表,在对线性表进行插入删除时非常不方便,为了解决顺序存储结构中的这个缺点,于是人们就想能不能采用一种不连续的存储方式,哪里有空位就到哪里去,能够通过第一个元素依次找到其后的各个元素,于是就产生了链式存储结构1、定义链式存储结构采用一组任意的存储单元存储线性表(可以连续可以不连续);n个结点链成一条链表2、分类链表分为单链表,双链表,静态链表,循环链表3、易混淆点(1)结点有数据域和指针域构成,next指针域原创 2020-09-28 16:30:52 · 2244 阅读 · 0 评论 -
线性表的顺序存储结构详解
线性表是一种逻辑结构,它在计算机中是如何存储的呢?有两种类型:顺序存储结构和链式存储结构,接下来一起看看顺序存储结构吧!!1.定义:用一段地址连续的存储单元存储线性表中的元素2.顺序存储结构利用一维数组实现,为什么呢?因为线性表中的数据元素的类型相同,一维数组本来就是用来存储一组具有相同数据类型的元素的,因此线性表的顺序存储结构就利用一维数组实现!!!3.描述顺序存储结构#define MAXSIZE 50 //定义存储空间的初始分配量typedef int ElemType //以后想原创 2020-09-27 16:25:34 · 3093 阅读 · 0 评论 -
线性表的定义详解
线性表1.定义:一种逻辑结构,线性表是具有相同数据类型的有限个元素的的有限序列2.说明:(1)当元素个数为0时为空表(2)除第一个元素和最后一个元素,每个元素都有一个直接前驱直接后继(3)第一个元素无前驱,最后一个元素无后继(4)线性表中每一个数据元素可由若干数据项组成举例:点名册:点名册由姓名、学号等数据项组成3.线性表的抽象数据类型(所谓抽象数据类型,在我理解下为把基本的操作和元素之间的逻辑关系提取出来就构成了抽象数据类型)ADT ListData数据元素之间是一对一关系,除第一个原创 2020-09-27 16:08:42 · 2650 阅读 · 0 评论 -
线性表基于顺序存储结构的基本操作的实现(初始化,创建,插入,删除,按值查找元素)
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define ElemType int#define InitSize 30typedef struct{ ElemType *data; int MaxSize,length;//maxsize为数组所能容纳的最大个数,length为有效长度}SqList;void InitList(SqList &L,int maxsize)原创 2020-06-07 10:36:21 · 4175 阅读 · 0 评论 -
连续存储数组的算法--初始化,输出,插入,追加,删除,倒置,排序
include <stdio.h>include <malloc.h>include <stdlib.h> //包含了exit函数//c语言中没有bool类型,只有c++里面有//定义了一个 struct Arr数据类型,里面包含三个成员变量。用来描述数组struct Arr{int * pBase; //存放数组的首地址int len; //数组所能容纳的元素的最大个数int cnt; //当前数组的有效元素的个数};void init_a原创 2020-05-21 15:05:21 · 293 阅读 · 0 评论