线性表总结

  ↵

1、线性表的主要内容

线性表的逻辑结构

线性表的顺序结构

线性表的链式存储

顺序表和单链表的比较

2、线性表的定义

零个或多个具有相同类型的数据元素的有限序列。元素的个数就是表的长度。长度为0就是空表。

 

顺序存储结构及实现

用一段连续的地址来存储数据。

每个元素在存储空间的相邻关系和物理相邻关系相同,可通过下表实现随机访问。

顺序存储通过一维数组实现它。

 

const int maxsize=100;

template<class T>

class Seqlist{

  T data[maxsize]; //元素数据类型为模板T;

  int lenght; //顺序表长度;

public:

  Seqlist(); //无参构造函数

  Seqlist(T a[ ] ,int n); //有参构造函数

  ~Seqlist(); //析构函数,在静态存储中不做任何工作,函数体可不写;

  int getlenght(){return lenght;} //返回表的长度;

//下面实现查找功能

  T get(int i); //按位置查找,返回该物理位置的元素数据;

  int loc(T a); //按值查找,返回该元素的物理位置;

  

  void insert(T a,int i);//把a元素插入 i 位置;

  T delete( int i) ; //把 i位置上的元素删除,并返回被删的元素数据;

  void printlist(); //遍历顺序表,输出所有数据;

};

3、顺序表

优点:逻辑关系与物理关系相关,节点之间的逻辑关系不用额外增加存储空间,

可随机利用下标访问表内数据。

缺点:插入和删除较为麻烦,时间复杂度为O(n);静态存储,难以确定存储规模。

 

链式存储结构及实现

为了解决顺序表,难以确定存储规模的这一问题,可利用动态存储,由程序员向系统申请空间来进行存储。

链式存储包括:

 

单链表

双链表

循环链表

链表节点的定义

链表由一个个节点组成,节点要实现链表的功能,需要有存数据的前驱,为了连接成链,还要有存储下一节点地址的后继。

 

template<class T>

struct Node{

 T data; //前驱

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值