c++实现顺序表
来源:互联网 发布:软件系统销售合同范本 编辑:程序博客网 时间:2024/06/04 19:04
//学习数据结构中所写,本人代码能力有限,如有不当,欢迎大家指出
#include <iostream>using namespace std;#define MAX_SIZE 20#define OK 1#define ERROR 0typedef int Status;typedef int ElemType; // 元素类型可以改变,假定这里为intclass sqList{private:ElemType data[MAX_SIZE];int length;public:// 获取、插入、删除三个基本操作ElemType getElem(ElemType &e, int pos);Status insertElem(ElemType e, int pos);Status deleteElem(ElemType &e, int pos);int getLength(){ return length; }void initList(); // 初始化列表,默认设置前五个元素};ElemType sqList::getElem(ElemType &e,int pos){if (pos > length||pos<1 || pos>length) // 顺序表为空或pos不合法return ERROR;e = data[pos - 1];return OK; }Status sqList::insertElem(ElemType e, int pos){if (length == MAX_SIZE - 1) // 表中元素已满return ERROR;if (pos < 1 || pos>length + 1) // pos位置不合法return ERROR;if (pos <= length) // 当插入位置不在表位{for (int index = length - 1; index >= pos - 1; index--){data[index + 1] = data[index];}}data[pos - 1] = e; // 将元素插入length++;return OK;}Status sqList::deleteElem(ElemType &e, int pos){if (length == 0) // 表中无元素return ERROR;if (pos<1 || pos>length) // pos不合法return ERROR;e = data[pos - 1];if (pos < length) // pos不在表尾{for (int index = pos - 1; index <= length - 1; index++){data[index] = data[index+1];}}length--;return OK;}void sqList::initList(){length = 5;for (int i = 0; i < length; i++){data[i] = i + 1;}}int main(){sqList list;list.initList();cout << "初始化成功" << endl;ElemType e;for (int i = 0; i < list.getLength(); i++){list.getElem(e, i + 1);cout << "第" << i + 1 << "个元素为:" << e << endl;}cout << "请输入要删除的元素的位置:";int pos;cin >> pos;if (list.deleteElem(e, pos)){cout << "删除的元素为" << e << endl;cout << "插入后列表信息如下:" << endl;for (int i = 0; i < list.getLength(); i++){list.getElem(e, i + 1);cout << "第" << i + 1 << "个元素为:" << e << endl;}}else{cout << "删除失败" << endl;}cout << "请输入要插入的元素和插入的位置:";cin >> e>>pos;list.insertElem(e, pos);cout << "插入后列表信息如下:" << endl;for (int i = 0; i < list.getLength(); i++){list.getElem(e, i + 1);cout << "第" << i + 1 << "个元素为:" << e << endl;}}
阅读全文
0 0
- 【C++】实现顺序表
- 【c++】实现顺序表
- C语言实现顺序表
- 数据结构---顺序表c实现
- 顺序表c语言实现
- 顺序表的C实现
- c语言实现顺序表
- 顺序表实现-c
- 【C++】顺序表的实现
- 顺序表(C实现)
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- 【C++】顺序表的实现
- C语言实现顺序表
- C语言实现顺序表
- C语言实现顺序表
- Python和其它27种编程语言
- C++11 新特性: unordered_map 与 map 的对比
- 一个C程序的编译过程(Linux环境下Gcc)
- LSD SLAM算法分析(一):算法数学基础
- Python AND 其它27种编程语言
- c++实现顺序表
- 点击网页中的电话号码,实现“呼叫功能”
- 打印hadoop的配置文件的信息
- 程序员的年龄天花板
- scrapy异常:http status code is not handled or allowed
- Java 老矣,尚能饭否?
- CSS之3D翻转效果
- Date、String、Calendar类型之间的转化
- Filter解决编码问题