ThoughtWorks创新实验室代码改变世界程序员

数据结构 线性表

2017-01-03  本文已影响96人  SpiffyEight77
数据结构

本文主要介绍数据结构 线性表的概念

线性表

基本概念

线性表是具有相同特性的数据元素的一个有限序列。

线性表一般表示为:
L=(a1,a2,...,ai,ai+1,...,an)

线性表的基本运算

  1. InitList(&L): 初始化操作,建立一个空的线性表L。

  2. ListEmpty(L): 判断线性表是否为空表,若线性表为空,返回true,否则返回false。

  3. ClearList(&L): 将线性表清空。 GetElem(L,i,&e): 将线性表L中的第i个位置元素值返回给e。

  4. LocateElem(L,e): 在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。

  5. ListInsert(L,i,&e): 在线性表L中第i个位置插入新元素e。

  6. ListDelete(L,i,&e): 删除线性表L中第i个位置元素,并用e返回其值。

  7. ListLength(L): 返回线性表L的元素个数。

  8. TraverseList(L):当线性表L不为空时,输出线性表L的元素。

线性表的两种类型

线性表是线性结构的一种

  1. 顺序存储结构的线性表

顺序表概念
线性表的顺序存储结构指的是用一组地址连续的存储单元依次存储数据元素。

顺序表的存储结构

typedef struct sqList
{
   ElemType *elem;  //结构体成员
   int length;     //当前长度
}sqList;           //顺序表的结构类型为sqList
  1. 链式存储结构的线性表

链式表概念
线性表的链式存储结构是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续,也可以是不连续)。

单链表的存储结构

 {
    ElemType data;
    struct LNode *next;
 }LNode,*LinkList;```

#####设有线性表(A,B,D,K,F,G,R)

设头指针L的指针域为1

| 存储地址| 数据域 | 指针域 |
| :------: |:-------------:|:------:|
| 1 | A | 2 |
| 2 | B | 4 |
| 3 | D | 6 |
| 4 | K | 3 |
| 6 | F | 5 |
| 7 | G | NULL |
| 5 | R | 7 |


![单链表的逻辑状态](http:https://img.haomeiwen.com/i3452105/859e788aeef54eb0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

<br></br>
<div align = center>END</div>
上一篇下一篇

猜你喜欢

热点阅读