博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性表的顺序存储——线性表的本质和操作
阅读量:5051 次
发布时间:2019-06-12

本文共 1607 字,大约阅读时间需要 5 分钟。

1,线性表(List)的表现形式:

       1,零个或多个数据元素组成的集合;

       2,数据元素在位置上是有序排列的;

       3,数据元素的个数是有限的;

       4,数据元素的类型必须相同;

      

2,线性表抽象定义:

       1,线性表是具有相同类型的 n(>=0) 个数据元素的有限序列:

                (a0, a1, a2, a3, ... , an-1)

          其中,ai 是表项(数据元素),n 是表长度;

         

3,线性表的性质:

       1,a0 为线性表的第一个元素,只有一个后继;

       2,an-1 为线性表的最后一个元素,只有一个前驱;

       3,除 a0 和 an-1 外的其它元素 ai,既有前驱,又有后继;

       4,直接支持逐项访问和顺序存取;

      

4,线性表的一些常用操作(插删获设长清):   

       1,将元素插入线性表;

       2,将元素从线性表中删除;

       3,获取目标位置处元素的值;

       4,设置目标元素处元素的值;

       5,获取线性表的长度;

       6,清空线性表;

      

5,线性表在程序中表现为一种特殊的数据结构,其抽象类创建如下:

1 #ifndef LIST_H 2 #define LIST_H 3  4 #include "Object.h" 5  6 namespace DTLib 7 { 8  9 template 
// 用模板的方式描述 List,所以不需用 *.cpp 文//件;10 class List : public Object11 {12 protected: // 定义这两个保护函数,是为了继承给子类,让其拥有拷贝和赋值构造函数,但是却不能被外界使用,这然就阻止了拷贝赋值的产生,更加贴合生活,也避免了同一块内存被两个指针指向,造成重复释放的问题;13 List(const List&);14 List& operator= (const List&);15 public:16 List() {} // 已经添加构造函数了,所以编译器就不会为我们再添加构造函数,要手工添加一个;17 virtual bool insert(const T& e) = 0; // 在线性表的尾部默认的插入一个元素,所以 i 省略了;18 virtual bool insert(int i, const T& e) = 0;19 virtual bool remove(int i) = 0;20 virtual bool set(int i, const T& e) = 0;21 virtual bool get(int i, T& e) const = 0;22 virtual int find(const T& e) const = 0;23 virtual int length() const = 0;24 virtual void clear() = 0;25 };26 }27 #endif // LIST_H

 

6,以下是创建抽象类的测试代码:

1 #include 
2 #include "List.h" 3 4 using namespace std; 5 using namespace DTLib; 6 7 int main() 8 { 9 List
* l = NULL;10 }

 

7,小结:

       1,线性表是数据元素的有序并且有限集合;

       2,线性表中的数据元素必须是类型相同的;

       3,线性表可用于描述派对关系的问题;

       4,线性表在程序中表现为一种特殊的数据类型;

       5,线性表在 C++ 中表现为一个抽象类;

转载于:https://www.cnblogs.com/dishengAndziyu/p/10921408.html

你可能感兴趣的文章
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>
django创建项目流程
查看>>
Vue 框架-01- 入门篇 图文教程
查看>>
多变量微积分笔记24——空间线积分
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>