混子数据结构学习之第二章线性表笔记上

"磨棱角,褪优越,沉下心"
"不止于心动,更付诸于行动,执行力!“

引言

从这里开始,就真正进入数据结构核心内容的学习了,第二章主要是介绍了线性表以及他的顺序表示方法和链式表示方法,本章还是非常的重要,利用每天晚上零碎的时间,内容我大概学了一半多一点,现在对上周的内容进行一个总结,整理一下笔记。

知识回顾

线性表

定义:

线性表是具有相同特性的数据元素的一个有限序列,零个或者多个数据元素的有限序列。
空表:没有数据元素的线性表。

举例说明:

1、英文26个字母属于线性表
2、12星座是一个线性表
3、公司的组织架构不属于线性表(一个领导可能管理多个下层)
4、同学间的友谊不属于线性表(一个同学可能有多个朋友)

线性表的逻辑特征
  • 在非空的线性表,有且仅有一个开始结点,它没有直接前驱,而仅有一个直接后继。
  • 有且仅有一个终端结点,它没有直接后继,只有一个直接前驱。
  • 除首尾结点外,中间的结点都有且仅有一个直接前驱和一个直接后继。

线性表的类型定义、基本操作

抽象数据类型表示

ADT List{
    数据对象:D={ai|ai属于Elemset,(i=1,2,...,n,n>=0)}
    数据关系:R={<ai-1,ai>|ai-1,ai属于D,(i=2,3,...,n)}
    基本操作:
        InitList(&L);
        DestroyList(&L);
        ListInsert(&L,i,e);
        ListDelete(&L,i,&e);
        ……等等
}ADT List

基本操作

不需要死记硬背,大概知道有这么一些操作即可!
归纳基本操作就是:增、删、补、查···········

  • (1)InitList(&L)(Initialization List) //初始化
    操作结果:构造一个空的线性表L。
  • (2)DestroyList(&L)//销毁
    初始条件:线性表L已经存在。
    操作结果:销毁线性表L。
  • (3)ClearList(&L)//清除
    初始条件:线性表L已经存在。
    操作结果:将线性表L重置为空表。
  • (4)ListEmpty(L)//判断空表
    初始条件:线性表L已经存在。
    操作结果:若线性表L为空表,则返回TRUE;否则返回FALSE。
  • (5)ListLength(L)//求线性表的长度
    初始条件:线性表L已经存在。
    操作结果:返回线性表L中的数据元素个数。
  • (6)GetElem(L,i,&e)//获取线性表特定元素
    初始条件:线性表L已经存在,。
    操作结果:用e返回线性表L中第i个数据元素的值。
  • (7)LocateElem(L,e,compare())//查找线性表的元素(根据特殊条件)
    初始条件:线性表L已经存在,compare()是数据元素判定函数。
    操作结果:返回L中第1个与e满足compare()的数据元素的位序。若这样的数据元素不存在则返回值为0。
  • (8)PriorElem(L,cur_e,&pre_e)//求一个元素的前驱
    初始条件:线性表L已经存在。
    操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱;否则操作失败,pre_e无意义。
  • (9)NextElem(L,cur_e,&next_e)//求一个元素的后继
    初始条件:线性表L已经存在。
    操作结果:若cur_e是L的数据元素,且不是第最后个,则用next_e返回它的后继;否则操作失败,next_e无意义。
  • (10)ListInsert(&L,i,e)//插入线性表元素
    初始条件:线性表L已经存在,。
    操作结果:在L的第i个位置之前插入新的数据元素e,L的长度加一。
    插入元素e之前(长度为n):。
    插入元素e之后(长度为n+1):。
  • (11)ListDelete(&L,i,&e)//删除指定元素
    初始条件:线性表L已经存在,。
    操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减一。
    删除前(长度为n):。
    删除后(长度为n-1):。
  • (12)ListTraverse(&L,visited())//遍历所有元素
    初始条件:线性表L已经存在。
    操作结果:依次对线性表中每个元素调用visited()。

小结

这里暂时记录这些了,为了内容上的连贯性,这里相当于简单总结引出了线性表的概念和理解。上述所设计的定义、还有程序函数,都是伪代码,不必纠结程序语法问题,关键我认为要理解其中的思路逻辑,指导如何操作的。下面将分别用两篇来总结线性表的两种表示方法,即线性表的顺序表示和链式表示!

参考资料:
青岛大学.王卓.数据结构与算法
《数据结构 C语言版》.严蔚敏
《大话数据结构》.程杰

欢迎关注本人微信公众号:那个混子
记录自己学习的过程,分享乐趣、技术、想法、感悟、情感!
单片机类嵌入式交流学习可加企鹅群:120653336
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容