标签:adt 有一个 alt 第一个 概念 empty loading 程序 ima
举个例子:小学生排队,有一个打头,一个收尾。当中的每一个知道他前面一个是谁,后面一个是谁。
关于线性表,这里强调几个地方,帮助大家理解线性表。
如果排队的小朋友前面有两个小朋友,那就不可以排成一队了。同样,如果一个小朋友后面有两个小朋友,也是不合理的。
就像小朋友班级人数是有限的。实际上在计算机中处理的对象都是有限的,哪种无限的序列,一般只存在于数学概念中。
如果用数学语言来进行定义:
在较为复杂的线性表中,一个数据元素可以由若干个数据项组成。
ADT 线性表(List)
Data线性表的数据对象集合为{a1,a2,... ...,an},每个元素的类型均为DataType。其中,除了第一个元素a1外,每个元素有且只有一个直接前驱元素。除了最后一个元素an外,每个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系。
Operation
InitList(*L) : ????初始化操作,建立一个空的线性表L。
ListEmpty(L):????若线性表为空,返回true,否则,返回false。
ClearList(*L): ???? 将线性表清空
GetElem(L,i,*e): ???? 将线性表L中的第i个位置的元素值返回给e
LocateElem(L,e): ????在线性表L中与给定值e相等的元素,如果查找成功,返回该元素在表中的序列号。如果失败,返回0.
ListInsert(L,i,e) :???? 在线性表L中的第i个位置插入新元素e。
ListDelete(L,i,*e): ????删除线性表L中的第i个位置的元素,并用e返回其值。
ListLength(L): ???? 返回线性表L的元素个数。
对于不同应用,线性表的基本操作时不同的,上述操作是最基本的。对于实际问题中涉及的更复杂的操作,完全可以用这些基本操作的组合来实现。在实际编程中,还应该熟悉编程语言关于线性表的常用API,以简化编程,使得编写的程序更易于理解。
对于java程序员来说,线性表是十分重要的,对应该语言的集合部分。弄懂了线性表相关知识,对于java的集合的理解有着不小的帮助。同样的,如果本身比较熟悉,能深入理解集合底层部分知识,学习这部分也是事半功倍的。加油!
路漫漫其修远兮,吾将上下而求索。。。
标签:adt 有一个 alt 第一个 概念 empty loading 程序 ima
原文地址:https://www.cnblogs.com/caozz/p/linear.html