![](https://img-blog.csdnimg.cn/20201109215321880.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
数据结构学习
正义啊
安卓工程师
展开
-
一、线性表的顺序存储和基本运算
线性表的顺序存储::线性表的顺序存储指的是将线性表的数据元素按其逻辑次序依次存入一组地址连续的单元里,用这种方法存储的线性表称为顺序表。:只有确定线性表存储的起始位置,线性表中任意一个元素都可以随机存取,所以线性表是一种随机存取结构。对于线性表,常见的基本运算有以下几种:置空表,构造一个空的线性表求表长获取表中第i个元素的值,1<=i<=length按值查找位置插...原创 2019-04-25 23:18:57 · 3029 阅读 · 0 评论 -
二、单链表的头插法建表和尾插法建表
链式存储结构:用一组不一定连续的存储单元存储逻辑上相邻的元素,元素间的逻辑关系是由附加的指针域表示的,由此得到的存储结构称为链式存储结构。单链表(线性链表)使用链式存储结构表示每个数据元素 ai 时,除了存储 ai 本身信息之外,还需要一个存储指示其后继元素 ai+1 存储位置的指针。由这两部分组成元素 ai 的存储映像称为 结点。它包括两个域:存储数据元素的域称为数据域,存储直接后继...原创 2019-05-09 22:56:27 · 6432 阅读 · 1 评论 -
五、栈的定义及运算
定义:栈(stack)是限定在表的一端进行插入和删除运算的线性表,通常将插入、删除的一端称为栈顶(top),另一端称为栈低。不含元素的空表称为空栈。特点:后进先出栈的顺序存储结构和基本运算栈的顺序存储结构称为顺序栈。类似顺序表的定义,顺序栈也是用数组实现的。因为栈低位置是固定不变的,栈顶位置随着进栈和出栈操作而变化的,因此用一个整形量top来表示栈顶位置,通常称top为栈顶指针。...原创 2019-06-12 21:13:57 · 5085 阅读 · 1 评论 -
三、单链表的基本运算
查找运算(带头结点)(1)按结点序号查找在单链表中要查找第 i 个结点,就必须从链表的第1个结点(开始结点,序号为1)开始,序号为0的是头结点,p指向当前结点,j为计数器,初始值为1,当p扫描下一个结点时,计数器加1。当 j=i 时,指针 p 指向的节点就是要找的节点。/* 按节点序号查找 head 为带头节点的单链表的头指针, i为要查找的节点序号*/ListNo...原创 2019-06-04 22:00:07 · 2274 阅读 · 0 评论 -
四、循环链表和双向链表
循环链表循环链表是链式存储结构的另一种形式,特点是单链表的最后一个结点(终端结点)的指针域不为空,而是指向链表的头结点,使整个链表形成一个环。例子:/* 将值为x的新结点插入到有序循环链表的适当位置*/int InsertData(LinkList L,int x){ ListNode *s,*p,*q; //s新结点 q当前结点 p当前结点的前趋节点...原创 2019-06-11 20:43:19 · 230 阅读 · 0 评论 -
顺序表和链表的比较
顺序表将线性表的数据元素按其逻辑顺序依次存入一组地址连续的存储单元中,用这种顺序存储的线性表称为顺序表。(数组特性)优点连续存储,空间利用率高 (空间性能)随机存取结构,可直接存取任一元素,存取效率高 (时间性能)缺点插入和删除效率低,需要移动大量元素,重新排序存储大小固定,不定动态分配链表链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个...原创 2019-06-11 21:20:52 · 517 阅读 · 0 评论 -
六、队列
队列(Queue)是一种操作受限的线性表,它只允许在表的一端进行元素插入(入队),而在另一端进行元素删除(出队)。允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)从上面队列示意图可以看出队列具有先进先出的特性,因此又称队列为先进先出表(First In First Out,FIFO表)顺序队列:队列的顺序存储结构称为顺序队列。队列的顺序存储也是利用一块连续的存储单元...原创 2019-06-25 22:57:37 · 442 阅读 · 0 评论