描述

主题: C++ 动态线性表的完整实现
功能: 程序运行后,用户自定义输入线性表的长度;分别实现动态链表的插入、删除、查找操作
提示: 如果需要进入下一步操作,输入错误的范围即可

代码

//主题: C++ 动态线性表的完整实现
//功能:    程序运行后,用户自定义输入线性表的长度
//      分别实现动态链表的插入、删除、查找操作
//提示:    如果需要进入下一步操作,输入错误的范围即可#include<stdio.h>
#include<iostream>
#include<string>int SizeInput;//用户输入的长度typedef struct DynamicSequenceList
{int *data = 0;//元素:初值0int length = 0;//当前长度
}SeqList;//插入:在顺序表L的第i个位置插入新元素e
bool ListInsert(SeqList &L, int i, int e)
{if (i<1 || i>L.length + 1){std::cout << "位置超出范围\n";return false;}if (L.length >= SizeInput){std::cout << "链表已满\n";return false;}for (int j = L.length; j >= i; j--){L.data[j] = L.data[j - 1];}L.data[i - 1] = e;L.length++;return true;
}//删除:删除顺序表L中第i个位置的元素,被删除的元素由e返回
bool ListDelete(SeqList &L, int i, int e)
{if (i<1 || i>L.length){std::cout << "位置超出范围\n";return false;}e = L.data[i - 1];for (int j = i; j < L.length; j++){L.data[j - 1] = L.data[j];//前移}L.length--;return true;
}//查找:查找值为e的元素,如果查找成功,返回元素位序,否则返回0
int LocateElem(SeqList L, int e)
{int i;for (i = 0; i < L.length; i++){if (L.data[i] == e){return i + 1;}}return 0;
}int main()
{SeqList DynamicList;//用户自定义线性表长度std::cout << "请输入线性表长度:";std::cin >> SizeInput;//DynamicList.data = (int*)malloc(sizeof(int) * SizeInput);  //CDynamicList.data = new int[SizeInput];                      //C++std::cout << "成功创建动态线性表\n\n";int e;//元素int i;//位置bool checker = true;//插入for (; checker != false;){std::cout << "\n(总长度:" << SizeInput << "当前长度:" << DynamicList.length << ")\n请输入:位置 元素 ";std::cin >> i >> e;//ListInsert(DynamicList, i, e);//输入错误不退出checker = ListInsert(DynamicList, i, e);//输入错误则退出//打印std::cout << std::endl;for (int print = 0; print < DynamicList.length; print++){std::cout << DynamicList.data[print] << " ";}}//删除std::cout << "进入删除操作\n";for (checker = true; checker != false;){std::cout << "\n(总长度:" << SizeInput << "当前长度:" << DynamicList.length << ")\n删除操作 请输入:位置";std::cin >> i;//ListInsert(DynamicList, i, e);//输入错误不退出checker = ListDelete(DynamicList, i, e);//输入错误则退出//打印std::cout << std::endl;for (int print = 0; print < DynamicList.length; print++){std::cout << DynamicList.data[print] << " ";}}//查找std::cout << "进入查找操作\n";int ret;for (ret = -1; ret != 0;){std::cout << "\n(总长度:" << SizeInput << "当前长度:" << DynamicList.length << ")\n查找操作 请输入:元素";std::cin >> e;//ListInsert(DynamicList, i, e);//输入错误不退出ret = LocateElem(DynamicList, e);//输入错误则退出//打印std::cout << "你要查找的元素在第" << ret << "个\n";}system("pause");
}

C++ 动态线性表的顺序存储结构(数组实现)相关推荐

  1. c语言实现顺序存储程序,线性表的顺序存储结构动态态分配C语言实现

    线性表的顺序存储结构动态态分配C语言实现 线性表的顺序存储结构动态态分配C语言实现 初始化执行期间通过malloc函数为数组申请空间,程序运行期间若空间不够可通过realloc函数在保留原存储值的前提 ...

  2. 数据结构和算法:(3)3.1线性表的顺序存储结构

    -----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...

  3. 数据结构开发(3):线性表的顺序存储结构

    0.目录 1.线性表的本质和操作 2.线性表的顺序存储结构 3.顺序存储结构的抽象实现和具体实现 3.1 SeqList 3.2 StaticList 和 DynamicList 4.顺序存储线性表的 ...

  4. 线性表:2.线性表的顺序存储结构--顺序表及C语言实现

    逻辑结构上呈线性分布的数据元素在实际的物理存储结构中也同样相互之间紧挨着,这种存储结构称为 线性表的顺序存储结构 . 也就是说,逻辑上具有线性关系的数据按照前后的次序全部存储在一整块连续的内存空间中, ...

  5. 数据结构之线性表之顺序存储结构(3)

    1 前言 经过前两张的理论基础,我相信大家都能简单的明白了数据结构和算法一些常用的概念了,从今天开始我们开始学习数据结构中线性表,一起叩响数据结构的大门. 2 详述 线性表(List):零个或者多个数 ...

  6. 线性表之顺序存储结构

    第三章 线性表:零个或多个数据元素的有限序列. 若将线性表标记为(a1,a2,...ai-1,ai,ai+1,...,an), 当i=1,2,...n-1时,ai有且仅有一个直接后继, 当i=2,3, ...

  7. 线性表的顺序存储结构

    一,什么是线性表 零个或多个数据元素的有限序列 说明: 它是一个序列,即,元素之间是有顺序的.(第一个元素无前驱,最后一个元素无后继,其他每个元素有且只有一个前驱和后继) 线性表强调有限. 二,数学语 ...

  8. 【数据结构】之线性表(顺序存储结构)

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

  9. 线性表的顺序存储结构详解

    线性表是一种逻辑结构,它在计算机中是如何存储的呢?有两种类型:顺序存储结构和链式存储结构,接下来一起看看顺序存储结构吧!! 1.定义:用一段地址连续的存储单元存储线性表中的元素 2.顺序存储结构利用一 ...

最新文章

  1. FWFT FIFO读操作注意
  2. Python3.6.4 安装
  3. 史上最全解读 | 飞桨模型库重大升级,主流算法模型全覆盖
  4. 从思维导图学习操作系统(一)
  5. 2 数据源配置_如何在程序运行中动态切换数据源?架构师必读秘笈
  6. 科学计数怎么转换成数字_勒夫迈 | 激光尘埃粒子计数器传感器工作原理
  7. 微型计算机应用领域思维导图,思维导图作用和应用领域有哪些
  8. 网络原理制作bt采集蜘蛛
  9. [ecshop 二次开发经验] ecshop 手机版本 购车流程 最后没有支付按钮 ,清理没有用的支付方式 68ecshop
  10. 二分查找及时间复杂度
  11. 利用Chrome在PC电脑上模拟微信内置浏览器
  12. 智云大咖秀:怎样的稳定器才是摄影师的“灵魂辅助”?
  13. 网络计算机无法连接打印机,网络打印机无法连接怎么办 网络打印机无法连接教程【详解】...
  14. 电子会员卡管理系统卡具配置
  15. div内嵌网页ajax,Div里面载入另一个页面的实现(取代框架)(AJax)(转)
  16. DNS工作原理及过程讲解
  17. 你上面写的代码用什么编程软件?
  18. 腾讯,互联网创业者的噩梦!
  19. IT行业的各岗位职责
  20. 中文计数法亿兆京垓秭穰沟涧正载

热门文章

  1. winform关闭当前form_C#中WinForm程序退出方法技巧总结
  2. python绘图函数教程_OpenCV中的绘图函数
  3. Spaly_Tree 模版
  4. Catalan数推导及应用
  5. 关于TCP下SOCKET的一些测试
  6. SQLLite (三):sqlite3_get_table,sqlite3_free_table
  7. OSI七层网络模型与TCP/IP四层网络
  8. OpenCV 中的绘制功能
  9. [六]RabbitMQ-客户端源码之AMQCommand
  10. 视频压缩标准简史:从1929到2020