代码:


#include <iostream>
#include <vector>
#include <string.h>
#include <cmath>
#include <algorithm>
using namespace std;
class ListClass{int *ListPtr;//指向线性表的指针int nLen;//线性表的长度int nElem;//线性表中元素个数
public:ListClass(int n=10)//构造函数{nElem=0;nLen=n;if(n)ListPtr=new int[n];//分配空间elseListPtr=NULL;}~ListClass()//析构函数{delete []ListPtr;//释放线性表的空间}int Elem(int);//重载函数1:在线性表末尾添加元素int &Elem(unsigned n)//重载函数2:返回下标为n的元素的引用{return ListPtr[n];}int Elem(void)//重载函数3:返回线性表中的元素个数{return nElem;}int Len(void){return nLen;}int GetElem(int i){if(i<nElem&&i>=0)return ListPtr[i];else{cout<<"下标越界"<<endl;return -1;}}void Print(void);
};
int ListClass::Elem(int elem)
{if(nLen==nElem)//线性表已满{int *newptr;newptr=new int[nLen+10];//申请新的线性表的空间,一次扩充10个for(int i=0;i<nLen;i++)newptr[i]=ListPtr[i];delete []ListPtr;ListPtr=newptr;nLen+=10;}ListPtr[nElem++]=elem;return nElem;
}
void ListClass::Print(void)
{for(int i=0;i<nElem;i++)cout<<ListPtr[i]<<"\t";cout<<endl;
}
int main()
{ListClass list(6);for(int i=0;i<5;i++)list.Elem(i);//向线性表中添加元素cout<<"线性表的长度为:"<<list.Len()<<endl;cout<<"线性表中的元素个数为:"<<list.Elem()<<endl;//调用重载函数3cout<<"线性表中的元素为:";list.Print();list.Elem(3u)=100;cout<<"线性表中下标为3的元素的值为:"<<list.GetElem(3)<<endl;list.Elem(20);list.Elem(200);//向线性表末尾添加20和200cout<<"现在线性表的长度为:"<<list.Len()<<endl;cout<<"现在线性表中元素个数为:"<<list.Elem()<<endl;//调用重载函数3cout<<"现在线性表中的元素为:"<<endl;list.Print();cout<<"线性表中的最后一个元素为:"<<list.GetElem(list.Elem()-1)<<endl;//调用重载函数3return 0;
}

输出结果:


线性表的长度为:6
线性表中的元素个数为:5
线性表中的元素为:0   1   2   3   4
线性表中下标为3的元素的值为:100
现在线性表的长度为:16
现在线性表中元素个数为:7
现在线性表中的元素为:
0   1   2   100 4   20  200
线性表中的最后一个元素为:200

【C++:类和对象】处理一个线性表,动态产生线性存储空间,并实现线性表的部分操作相关推荐

  1. 装饰器/使用类和对象封装一个工具类

    # coding:utf-8 # 装饰器是以@开头,@结构称为语法糖,装饰器的作用主要是给现有的函数增加一些额外的功能. # @classmethod # @staticmethod # @prope ...

  2. C++类和对象——设计一个长方形类

    class Rectangle {//在此处实现Rectangle类public:void Set(int h,int w){//设置长方形的高和宽height=h;width=w;}int GetA ...

  3. 【c++类和对象——设计一个学生类】

    设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,并且可以显示. 解法1: #include<iostream> using namespace std; #include<s ...

  4. 【黑马程序员】C++核心编程2 -类与对象(封装、继承和多态)-this指针-友元-运算重载符-文本操作(附测试用例源码、测试结果图及详细注释)

  5. 设计如下类: 1) 建立一个Point类,表示平面中的一个点;建立一个Line类,表示平面中的一条线端, 内含两个Point类的对象;建立Triangle类,表示一个三角形

    设计如下类:     1) 建立一个Point类,表示平面中的一个点:建立一个Line类,表示平面中的一条线端,     内含两个Point类的对象:建立Triangle类,表示一个三角形,内含三个L ...

  6. python类和对象详解_Python公开课 - 详解面向对象

    前言 在C语言中,单纯通过结构化的函数也可以实现很好的软件,顺序思路比较好理解:而C++则以面向对象的思维来进行代码组织,通过定义对象.成员变量.成员函数.以封装.继承和多态等方式来更灵活处理业务逻辑 ...

  7. C++学习笔记:(一)面向对象 类与对象

    目录 1.面向对象的概念 2.类与对象 2.1 类的定义格式 2.2 对象的定义与使用 2.3 构造函数和析构函数 2.4 内存的动态分配 2.5 对象数组和对象指针 2.6 函数参数的传递机制 2. ...

  8. (教学思路 c#之类一)声明类和对象、定义类成员及其引用

    上一节(教学思路 c#之面向对象二)初步理解面向对象的基本概念中,我没有提到任何的代码,只是用语言和实例来说明什么是类和对象以及面向对象的特性等基本概念,类是c#程序语言的重要核心,也是构建应用程序最 ...

  9. 类 Class 对象、定义、方法

    面向对象的定义 类 Class: 用来描述具体相同的属性和方法的对象的集合.定义了该集合中每个对象所共有的属性和方法.对象是类的示例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在 ...

  10. 什么叫做类数组对象?

    JavaScript中,数组是一个特殊的对象,其property名为正整数,且其length属性会随着数组成员的增减而发生变化,同时又从Array构造函数中继承了一些用于进行数组操作的方法.而对于一个 ...

最新文章

  1. FEC(Forward Error Correction)前向纠错 UDP\RTP 中使用用于改善无线等网络丢包等问题--转...
  2. docker ubuntu镜像_Docker 入门指南 | Linux 中国
  3. 用STL vector 来创建二维数组 zz
  4. tensorflow 旋转图片_使用TensorFlow对图像进行随机旋转的实现示例
  5. ffmpeg h264+ts +udp传输
  6. 配置ssh 无需密码即可登录远程服务器
  7. jeb反编译导出Java工程_Android 反编译(JEB.android.decompiler)
  8. 重磅|前浪、后浪 一起迎接风口! BCS 2020向全球发起议题征集
  9. ASCII表,二进制、十进制对照表
  10. 同济大学计算机系的课程,同济大学计算机系本科生培养方案
  11. 期权套利组合 matlab,期权交易:简单套利组合
  12. 苹果x和xsmax有什么区别_苹果12和12pro有什么区别?参数对比拍照续航,哪个值得买?...
  13. 波形图控件html,[转载]LabVIEW中的波形图(Waveform Chart)详解
  14. 【processing】Daniel Shiffman编程挑战题解、思维介绍及代码(1)穿越星际效果编译
  15. 面向对象设计需要遵循的六大设计原则
  16. Promise的使用
  17. 2021-04-29 微信登录简易版
  18. win7如何安装mysql5.7_WIN764安装mysql5.7
  19. 移动叔叔工具箱android,移动叔叔工具箱
  20. 浙江省赛 C What Kind of Friends Are You?

热门文章

  1. [Music]Candle in the Wind 1997《风中之烛》缅怀戴安娜
  2. PHP调用powershell权限,浏览器挂起执行运行Powershell的PHP
  3. mysql数据库优化经验_MySQL数据库优化经验详谈
  4. linux服务器备份,Linux服务器上如何备份
  5. Home Assistant系列 -- 设置界面语言与地理位置
  6. [HDU4585]Shaolin
  7. 在CentOS 7上安装Nginx服务器
  8. Open×××多处理之-为什么不
  9. Nagios 监控温度感应器
  10. struts2 传递json对象时的延迟加载异常处理方法