[数据结构]顺序表的实现-C++
来源:互联网 发布:mac 隐藏文件夹 编辑:程序博客网 时间:2024/05/27 14:14
因为要考研,所以开始复习数据结构,每看完一个知识点,就用C++实现一下,以便加深印象
第一个知识点是顺序表,就是封装对一个数组的操作,排序什么的等到后边复习到了再来补充,现在只有增删改查
因为之前都是用java写各种项目作业什么的,所以C++语法忘得差不多的,正在慢慢捡回来,正好趁这次机会重新看了一下模板类,就用模板类实现了
//SequenceTable.h
#pragma once#include<iostream>using namespace std;//顺序表template <class T> class SequenceTable {private:T *array;int length;int maxLength;public:SequenceTable();//默认构造函数SequenceTable(int maxlength);//带最大长度参数的构造函数bool deleteByIndex(int index);//通过下标删除元素bool addByIndex(T t, int index);//通过下标增加元素bool add(T t);//在表尾增加元素T getByIndex(int index);//通过下标得到元素int getLength();//得到当前表的长度int getMaxLength();//得到当前表的最大长度void showAll();//显示所有元素bool replaceByIndex(T t, int index);//通过下表替换元素};
//SequenceTable.cpp
#include"SequenceTable.h"template <class T> SequenceTable<T>::SequenceTable() {}template <class T> SequenceTable<T>::SequenceTable(int maxlength) {array = new T[maxlength];this->length = 0;this->maxLength = maxlength;}template <class T> bool SequenceTable<T>::deleteByIndex(int index) {if (index<0 || index>length - 1) {return false;}for (int i = index + 1; i < length; i++) {array[i - 1] = array[i];}length--;return true;}template <class T> bool SequenceTable<T>::addByIndex(T t, int index) {if (index<0 || index>length) {return false;}length++;for (int i = length - 1; i > index; i--) {array[i] = array[i - 1];}array[index] = t;return true;}template <class T> bool SequenceTable<T>::add(T t) {array[length] = t;length++;return true;}template <class T> T SequenceTable<T>::getByIndex(int index) {return array[index];}template <class T> int SequenceTable<T>::getLength() {return length;}template <class T> int SequenceTable<T>::getMaxLength() {return maxLength;}template <class T> void SequenceTable<T>::showAll() {for (int i = 0; i < length; i++) {cout << array[i] << "\t";}cout << endl;}template <class T> bool SequenceTable<T>::replaceByIndex(T t, int index) {if (index<0 || index>=length) {return false;}array[index] = t;return true;}
测试主函数
(之前使用的是include的头文件,但是一直报错未定义,上网查了一下,模板类好像不是很支持分开文件写定义和实现,include源cpp文件就好了)
#include<iostream>#include"SequenceTable.cpp"using namespace std;void main() {SequenceTable<int> st(10);st.add(1);st.add(2);st.add(3);st.add(4);st.showAll();st.addByIndex(5, 3);st.showAll();st.deleteByIndex(0);st.showAll();}
阅读全文
0 0
- 数据结构(C++)顺序表的实现
- 数据结构的C实现_顺序表
- [c语言]数据结构 顺序表的实现
- 数据结构---顺序表c实现
- 数据结构:顺序表的实现(C语言实现)
- 【数据结构C实现】1.顺序表实现
- c数据结构的顺序存储的实现
- 数据结构之---c语言实现线性表的顺序表
- C语言数据结构之:顺序表的实现
- 数据结构 顺序表的实现(C语言)
- c语言实现数据结构中顺序表的源代码
- [数据结构] 顺序表的实现(c++/类模板)
- [数据结构]顺序表的C语言简单实现
- 数据结构的C实现_顺序栈
- <数据结构>顺序列表的C语言实现
- <数据结构>顺序栈的C语言实现
- 【数据结构】顺序栈的实现(c++)
- 【数据结构】顺序队列的实现(c++)
- 字符串链接
- AlertDialog完全使用
- 常见单元测试工具介绍
- 电商用户行为分析大数据平台相关系列4-ZOOKEEPER安装
- C++中GetMemory问题
- [数据结构]顺序表的实现-C++
- python脚本构造有部分变动的重复文本
- 单件模式--软件设计模式
- Mac 中如何解压.bin文件
- 电商用户行为分析大数据平台相关系列5-KAFKA安装
- shell命令切换用户执行令的几种方法
- Hadoop基础教程-第4章 HDFS的Java API(4.3 pom.xml解析)
- Hibernate知识积累
- bagging和boosting(python代码实现)