数据结构(C)第2章线性表.pptVIP

  • 1
  • 0
  • 约9.27千字
  • 约 97页
  • 2017-05-05 发布于北京
  • 举报
数据结构(C)第2章线性表

第2章 线性表;2.1 线性表的基本概念;2.1.1 线性表的定义;2.1.2 线性表的抽象数据类型;2.2 线性表的顺序存储结构及实现; 2.2.1 线性表的顺序存储结构; 假设a1的地址为LOC(a1),每个元素占L个字节(本例L为2),ai的存放地址为: LOC(ai)?=?LOC(a1)?+?L*(i?1) 只要确定了线性表存储的起始位置,线性表中任一数据元素的位置都可确定,可以随机存取。 ; 为了更好地体现信息隐蔽原则以及数据抽象原则,一维数组elem[]和线性表的长度length封装在一个结构体中。 const int MAXSIZE=100; typedef int ElemType ; struct SqList0 { ElemType elem[MAXSIZE]; //一维数组 int length ; //表的实际长度 } SqList0就是顺序存储结构的类型标识符。;1.在类中使用静态一维数组 静态一维数组是指在声明定义数组时,所给出数组的大小是确定的。数组的大小留有余地。 const int MAXSIZE=100; typedef int ElemType ; class SqList1 { private: ElemType elem[MAXSIZE]; //一维数组 int length ; //线性表长度 public: ………;//其他成员函数; };;2.在类中使用动态一维数组 动态一维数组是指在声明定义数组时用指针表示,数组的大小没有确定。在数据成员中除数组elem、表长length还给出表的容量maxlen。 class SqList2 { private: ElemType *elem; //用指针表示一维数组 int length ; //表的实际长度 int maxlen; //表的最大长度,容量 public: ………; //其他成员函数 } ;;2.2.2 顺序表类定义;//顺序表类SqList的定义 typedef int ElemType; //数据元素的类型 const int MAXSIZE=100; //数组的容量 class SqList { private: ElemType elem[MAXSIZE]; //数组 int length; //线性表长 public: SqList( void); //构造函数 ~SqList(){ }; //析构函数 void Creat() ; //初建一个简表函数 void PrintOut(); //输出线性表函数 void Insert( int i, ElemType e); //插入函数 ElemType Delet(int i); //删除函数 };//类定义结束;SqList::SqList() {length=0; } //构造函数,构造空表 void SqList::Creat() //建立一个简表函数 { cout\n Input length=; cinlength; cout\n Input Data:\n ; for(int k=0; klength;k++) cinelem[k]; } void SqList::PrintOut() //输出线性表函数 {cout\n length=length ; cout\n PrintOut Data:\n ; for(int k=0; klength;k++) coutsetw(6)elem[k]; coutendl; } 这两个函数主要是为

文档评论(0)

1亿VIP精品文档

相关文档