小猪的数据结构学习笔记(四)
线性表之静态链表
在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于
我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题,
如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下!
没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式
来实现单链表的效果!也就是今天要讲的——静态链表!
当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了!
我们学习的是一些思维方式,当条件限制了你的时候,不允许你使用...
分类:
其他好文 时间:
2014-09-29 22:21:33
阅读次数:
293
单链表:typedef struct Lnode{ ElemType data; /*数据域,保存结点的值 */ struct Lnode *next; /*指针域*/}LNode, *LinkList; /*结点的类型 */建表:1)头插...
分类:
其他好文 时间:
2014-09-22 16:31:12
阅读次数:
246
顺序表结点的存储地址计算公式: 第i个数据元素的存储位置:Loc(ai)=Loc(ai)+(i-1)*l;1≤i≤n(l为每个元素需占l个存储单元) 第(i+1)个数据元素的存储位置Loc(ai+1)和第i个数据元素的存储位置Loc(ai)的关系:Loc(ai+1)=Loc(ai)+l;...
分类:
其他好文 时间:
2014-09-22 13:43:12
阅读次数:
216
线性表之顺序表奇偶调整,就是指将顺序表的奇数与偶数位置互换,以最优方法解决,因为方法很多,比如,开辟一个新的顺序表分别存放奇偶数,也可以从头向后寻找奇偶数放置到尾部或头部,但这些都会增大时间与空间的消耗。最优法则是前后分别寻找奇偶不同类型数,满足前奇后偶(或前偶后期),交换两数位置,实现时间复杂度O(n),空间O(1)的方案。
void AdjustSqlist(SeqList *L)
{
...
分类:
其他好文 时间:
2014-09-21 22:34:33
阅读次数:
510
本文参考国家精品课程耿国华的数据结构写的,发现了书上的一些问题,并做了简单修正,补足了整个程序过程,若有不足,请跟帖指正!!!
#include
#include
using namespace std;
#define MAXSIZE 100
#define ERROR 0
#define OK 1
typedef int ElemType;
typedef struct
{
Ele...
分类:
其他好文 时间:
2014-09-15 15:56:59
阅读次数:
184
题目:历史上有一些事件发生的先后顺序,现在有很多学生写了不同的顺序表,
判断每个学生的最大的前后顺序正确的序列。
分析:dp,LIS,最大上升子序列。
注意本题的数据格式,串里的每个元素对应于:对应下标编号的事件在表中的位置;
状态:F(n)记录以第n个元素为结束元素的序列的最长上升子序列,有转移方程:
F...
分类:
其他好文 时间:
2014-09-15 11:17:48
阅读次数:
252
简介:
分块查找又称索引顺序查找,它是顺序查找的一种改进方法,性能优于顺序查找。
方法描述:
将n个数据元素“按块有序”划分为m块(一般块的长度均匀,最后一块可以不满)(m
如下图所示:
图示为一个索引顺序表,其中包括三个块,第一个块的其实地址为0,快内最大关键字为25;第二个块的其实地址为5,块内最大关键字为58;第三个块的起始地址为10,块内最大关键字为...
分类:
其他好文 时间:
2014-09-15 11:17:28
阅读次数:
245
线性表概述
线性表是最基本、最简单、也是最常用的一种数据结构。在线性表中数据元素之间的关系是线性,数据元素可以看成是排列在一条线上或一个环上。
线性表分为静态线性表和动态线性表,常见的有顺序表(静态的)、单向链表(动态的)和双向链表(动态的)。
线性表的操作主要包括:
(0)初始化线性表
(1)计算表的长度n。
(2)线性表是否为空
(3)将元素添加到线性表的末尾
(4)...
分类:
其他好文 时间:
2014-09-14 09:00:46
阅读次数:
226