数据结构——线性表

本章的基本内容是

 线性表的顺序存储及实现
 线性表的链接存储及实现
顺序表和链表的比较
 线性表的其他存储方法
     

2.1 线性表的逻辑结构

主要内容
线性表的特性
线性表的抽象数据类型


数据元素之间的关系是什么?





  生活中,问题抽象出的数据模型是线性表,如何存储种线性结构并实现插入、删除、查找等基本操作呢? 


线性表的定义

p线性表:简称表,是n(n≥0)个具有相同类型的数据元素的有限序
p 线性表的长度:线性表中数据元素的个数。
p 空表:长度等于零的线性表,记为:L=(  )。
 非空表记为:L=(a1, a2 , …, ai-1, ai , …, an)


其中,ai1≤in)称为数据元素;

下角标 i 表示该元素在线性表中的位置或序号 。


2.2  线性表的顺序存储结构及实现

主要内容

2.21  线性表的顺序存储结构——顺序表

2.22  顺序表的实现;
                                                                    1构造函数
                                         2求线性表的长度
                                         3查找操作
                                         4插入操作
                                         5删除操作
                                         6遍历操作

将线性表的抽象数据类型定义在顺序表存储结构下用C++的类型实现。由于线性表的数据元素类型不确定,所以采用C++的模板机制

           constintMaxSize=100

           template<class DataType>           //模板类

           classSeqList

           {

           public: 

               SeqList( ) ;                                 //构造函数

               SeqList(DataType a[ ], int n);      

               ~SeqList( ) ;                               //析构函数

               int Length( );

               DataType Get(inti);

              int Locate(DataType x );

              void Insert(inti, DataType x); 

             DataType Delete(inti);       

        private:

             DataType data[MaxSize];

             int length;

         };

2.3   线性表的链接存储结构及实现

 2.31  单链表
  单链表的存储方法      单链表的实现
                                                        1遍历操作
                                                        2求线性表的长度
                                                        3查找操作
                                                        4插入操作
                                                        5构造函数
                                                        6删除操作
                                                        7析构函数
 2.32  循环链表
 2.33  双链表
                           1插入
                           2删除

                   template<class DataType>

                   classLinkList

                   {  

                    public:

                         LinkList( )

                         LinkList(DataType a[ ], int n);

                         ~LinkList( );

                        int Length( );         

                        DataType Get(inti);          

                        int Locate(DataType x);      

                        void Insert(inti, DataType x);  

                        DataType Delete(inti);       

                        void PrintList( );          

                    private:

                         Node<DataType>*first;

                   };

2.4  顺序表和链表的比较

主要内容

2.41  时间性能比较
2.42  空间性能的比较


2.5   线性表的其它存储方法

 主要内容

2.51  静态链表
2.52  间接寻址

本章总结      




构造函数

       构造函数的作用是初始化一个对象的成员变量。

       构造函数的特点:

                     1. 构造函数必须与类名相同;

                     2. 必须声明为类的公有成员函数;

                     3. 不可以有返回值也不得指明返回类型;

                     4. 构造函数可以重载。

析构函数

               析构函数用于在一个对象被撤消时删除其成员变量,其标志是在类的名字前面加                 上“~”。

               析构函数特点:

                      1.析构函数没有参数和返回值;

                      2.一个类只能有一个析构函数;

                      3. 析构函数不允许重载。 







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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值