C++版的顺序表
来源:互联网 发布:js 不区分大小写 编辑:程序博客网 时间:2024/06/12 20:55
这篇博客是《妙趣横生的算法(C++版)》的学习笔记,本人只是简单的跟着书敲着玩并浅显思考,具体的代码肯定是记不住的,但是能理解算法思路的一二也足以了。有时候,当你做一件事情的时候,并不一定能带来太多的收获,但是坚持下去就行了,做自己应该做的,量变必定引起质变
// 顺序表.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;template<typename DataType> class SeqList{public ://构造函数SeqList(int size = defaultSize){if (size > 0)//检查合法性{maxSize = size;length = 0;elements = new DataType[maxSize];//分配内存for (int i = 0; i< maxSize; i++){elements[i] = NULL;}}}//析构函数~SeqList(){delete[] elements;}bool insertOneElement(DataType data);//插入元素bool deletedElement(int location);//删除元素DataType getElements(int location);//获得元素bool changeElement(int location, DataType newData);//更改指定位置的元素int getLength(){return length;}private :static const int defaultSize = 10;DataType *elements;int maxSize;int length;};////////////////////////////////////////////////////////////////////////////顺序表插入操作template<typename DataType> bool SeqList<DataType>::insertOneElement(DataType data){int currentIndex = length;//记录新元素插入的位置if (length >= maxSize){return false;}else{elements[currentIndex] = data;//将新元素插入顺序表的表尾length++;return true;}}////////////////////////////////////////////////////////////////////////////获取指定位置元素template <typename DataType> DataType SeqList<DataType>::getElements(int location){if (location<0 || location>length)//容错{std::cout << "参数无效" << std::endl;}else //获取指定位置元素的值{return elements[location];}}////////////////////////////////////////////////////////////////////////////删除指定位置的元素template <typename DataType> bool SeqList<DataType>::deletedElement(int location){if (location >= length || length < 0){return false;}else{for (int i = location; i < length;i++){//将指定位置的元素往前移动elements[i] = elements[i + 1];}length--;//长度减一return true;}}////////////////////////////////////////////////////////////////////////////改变指定位置的元素的值template<typename DataType> bool SeqList<DataType>::changeElement(int location, DataType newData){if (location < 0 || location >= length){return false;}else{//改变值elements[location] = newData;return true;}}int _tmain(int argc, _TCHAR* argv[]){SeqList<int> list(10);for (int i = 0; i < 10;i++){list.insertOneElement(i * 10);}for (int i = 0; i < list.getLength();i++){cout << list.getElements(i) << " ";}cout << endl;list.deletedElement(3);for (int i = 0;i<list.getLength();i++){cout << list.getElements(i) << " ";}cout << endl;list.changeElement(4, 33);for (int i = 0; i < list.getLength();i++){cout << list.getElements(i) << " ";}cout << endl;system("pause");return 0;}
0 0
- 【顺序表】 c语言的顺序表
- 顺序表C版
- 顺序表的C实现
- 【C++】顺序表的实现
- 【C++】顺序表的实现
- 【动态顺序表】 c语言的动态顺序表
- 一元多项式的加法器 C语言版 链表版 顺序表版
- 顺序表的功能的C代码
- 顺序表的类C实现
- 数据结构(C++)顺序表的实现
- 线性表的顺序实现(C语言)
- 线性表的顺序实现(C++)
- 顺序表的C语言实现
- 数据结构的C实现_顺序表
- 线性表的顺序实现(c语言)
- 顺序表的基本操作(C++)
- 顺序表的实现(C语言)
- [c语言]数据结构 顺序表的实现
- HashSet删除重复元素
- CCF 习题 201604-3路径解析 (STL模拟)
- SPOJ 705 New Distinct Substrings 后缀数组
- java for-each循环解惑
- 算法 幸运数+爬山
- C++版的顺序表
- Android性能优化之被忽视的优化点
- 图片无限重复滚动
- java.lang.UnsatisfiedLinkError 解决方法
- c++primer-p100.用迭代器进行二分法搜索
- 167. Two Sum II - Input array is sorted M
- 代理模式
- U盘安装win7和centos7双系统
- Java设计模式——策略模式(Strategy Pattern)