【C++数据结构学习笔记---线性表】用数组实现线性表
来源:互联网 发布:股票数据接口api 编辑:程序博客网 时间:2024/05/29 14:56
【C++数据结构学习笔记---线性表】用数组实现线性表
一个简单的实现例子,只用到了插入函数以及输出函数,初始化26个英文字母。
插入算法的思路:(insert)
1、线性表已满则不插入任何数据。
2、如果插入位置不合理,程序自动纠正,如插入位置小于1,则修正插入位置为1,插入位置大于length+1,则修正为length+1。
3、从最后一个元素开始向前遍历到第k个位置,分别将它们都向后移动一个位置。
4、将要插入元素填入位置k。
5、表长加1。
删除算法的思路:(erase)
1、如果删除位置不合理,则不删除任何数据。
2、从第k+1个位置开始遍历到最后一个元素,分别将它们都向前移动一个位置。
3、表长减1。
#include <iostream>using namespace std;#define MAX_LIST_SIZE 20template <typename T>class ArrList{public:ArrList(int max_list_size=MAX_LIST_SIZE);//构造函数~ArrList(){delete [] data;}//析构函数bool empty()const {return 0==length;}//判断表是否为空int size()const {return length;}//判断表的大小int locate(const T& x)const;//返回表中元素x的位置bool retrieve(int k,T& x)const;//返回表中第k个元素xArrList<T>& insert(int k,const T& x);//在表的位置k插入元素xArrList<T>& erase(int k);//从表中删除位置k的元素void print_list();//输出表private:int length;//记录表长int max_size;//表的最大长度T *data;//记录表中的数组};template <typename T>ArrList<T>::ArrList(int max_list_size){max_size=max_list_size;data=new T[max_size];length=0;}template <typename T>int ArrList<T>::locate(const T& x)const{for(int i=0; i<length; ++i){if (data[i]==x) return ++i;}return 0;}template <typename T>bool ArrList<T>::retrieve(int k,T& x)const{if ((k<1)||(k>length)){return false;}x=data[k-1];return true;}template <typename T>ArrList<T>& ArrList<T>::insert(int k,const T& x){if (length==max_size) return *this;//线性表已满if (k<1) k=1;if (k>length+1) k=length+1;for(int i=length-1;i>=k-1;--i){data[i+1]=data[i];}data[k-1]=x;++length;return *this;}template <typename T>ArrList<T>& ArrList<T>::erase(int k){if ((k<1)||(k>length)) return *this;if (0==length) return *this;for(int i=k;i<length;++i){data[k-1]=data[k];}--length;return *this;}template <typename T>void ArrList<T>::print_list(){for(int i=0;i<length;i++){cout <<data[i] <<" ";}}int main(){int s1,s2;ArrList<char> s(30);s1='A';s2='Z';for(int i=s2;i>=s1;--i){s.insert(0,i);}s.print_list();return 0;}
- 【C++数据结构学习笔记---线性表】用数组实现线性表
- 【C++数据结构学习笔记---线性表】用单链表实现线性表
- 【数据结构】线性表(数组实现)
- 数据结构--线性表C实现
- 数据结构-线性表(学习笔记)
- 数据结构学习笔记-线性表
- 数据结构用c实现线性表子系统
- C语言数据结构学习之数组线性表
- 数据结构之线性表(C++)---数组描述
- C语言数据结构-线性表-数组
- 数据结构(C语言版)线性表学习笔记
- 学习笔记------数据结构(C语言版) 线性表顺序存储
- java数据结构:线性表之数组实现
- 简单数据结构-数组实现线性表
- 1.数据结构--线性表之数组实现
- 数据结构-线性表的数组实现-Java
- 数据结构之线性表(数组实现)
- 数据结构学习笔记(二)线性表及其C++实现
- YII model创建和使用
- 了解iOS中XML解析(2)
- iis发布的项目 本机可以访问,内网访不了
- 对于nginx的思考
- 编写高效的CSS代码
- 【C++数据结构学习笔记---线性表】用数组实现线性表
- C++编程思想读书笔记之 第四章 初始化与清除
- 数据读入加速
- POJ 2226 Muddy Fields (最小点覆盖)
- access
- 关于Block代码块的使用方法
- MATLAB矩阵和数组
- ie和webkit浏览器页面居中问题
- 双链表操作