C#数据结构-顺序表
首先我们来定义一个顺序表
class LineClass{//设置线性表最大长度public const int MaxSize = 100;//初始化数据public string[] data;//线性表长度public int length;//初始化构造public LineClass(){//构造函数初始化线性表data = new string[MaxSize];length = 0;}
}
#region 存储元素结构 O(n)public void CreateLine(string[] splits){int i;for (i = 0; i < splits.Length; i++){data[i] = splits[i];}length = i;}#endregion
#region 将线性表的元素构成一个字符串返回 O(n)public string DispLine(){string strLine = string.Empty;for (int i = 0; i < length; i++){strLine += data[i] + ",";}return length > 0 ? strLine.TrimEnd(',') : "";}#endregion
获取这个顺序表的长度。时间空间复杂度为: O(1)
#region 线性表的长度 O(1)public int LineLength(){return length;}#endregion
获取第item个元素的值,时间空间复杂度为: O(1)
#region 获取线性表第item项,元素值为e O(1)public bool GetElem(int item, ref string e){if (item < 1 || item > length){return false;}e = data[item - 1];return true;}#endregion
#region 根据值获取位置 O(n)public int LocateElem(string e){int i = 0;while (i<length && string.Compare(data[i],e)!=0){i++;}return i >= length ? 0 : i + 1;}#endregion
第二种从中间插入,跟第一种的情况差不多,从这个位置开始,后面的每一项元素往后移动一个单位
所有这里分为最好的和最坏的情况
#region 插入,从item处插入e值 O(n)public bool LineInsert(int item, string e){//插入的时候小于第一个的位置,或者大于最后两个位置if (item<1 || item>length+1){return false;}for (int j = length; j > item; j--){data[j] = data[j-1];}data[item - 1] = e;length++;return true;}#endregion
#region 删除 O(n)public bool LineDelete(int item, string e){//删除的时候小于第一个的位置,或者大于最后一个位置if (item < 1 || item > length ){return false;}e = data[item];for (int i = 0; i < length-1; i++){data[i] = data[i + 1];}length--;return true;}#endregion
结论:那么到这里呢顺序表操作结束了,可以说顺序表是结构最简单,存储内存消耗最小的一个数据结构
优点:存储密度高,存储效率高,存取速度快,可以随机存取结点。
缺点:长度为定值,中途不易扩充。插入或删除需要移动结点,修改效率低。
C#数据结构-顺序表相关推荐
- C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...
c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...
- 数据结构-顺序表(动态分配存储空间)
数据结构-顺序表(动态分配存储空间) (1)顺序表的结构定义: 结构型定义:(动态分配存储空间) /*** 动态分配存储空间*/ #define InitSize 100 //动态分配存储空间时,不限 ...
- C语言/C++常见习题问答集锦[八十三]之数据结构顺序表(operand types are error: no match for “operator==“)
C语言/C++常见习题问答集锦[八十三]之数据结构顺序表{operand types are error: no match for "operator=="} 程序之美 前言 主 ...
- 数据结构--顺序表的使用
数据结构--顺序表的使 #include<iostream> #include<cstdio> #include<cstring> using namespace ...
- Educoder头歌数据结构顺序表及其应用
头歌实践平台答案educoder 数据结构-顺序表及其应用 第1关:顺序表的实现之查找功能 /***************************************************** ...
- 数据结构——顺序表的合并
数据结构--顺序表的合并 具体要求:写一个函数,其函数的功能是将非递增顺序表LA和LB合并到非递增顺序表LC中 数据结构-顺序表的操作之合并顺序表 一.顺序表的结构 首先要定义的是顺序表的结构体,只有 ...
- python顺序表数组_数据结构 | 顺序表
什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中. 比如:列表.集合与字典等都 ...
- 8.基本数据结构-顺序表和链表
一.内存 - 计算机的作用:对数据进行存储和运算.首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据.例如下载好的一部电影,该电影可以存储到计算机中,计 ...
- 数据结构顺序表基本流程
生活中很多事物是有顺序关系的,如班级座位从前到后是按排的顺序,从左到右是按列的顺序,可以很方便的定位到某一个位置,但如果座位是散乱的,就很难定位. 在程序中,经常需要将一组(通常是同为某个类型的)数据 ...
最新文章
- 转义符,re模块,rangdom随机数模块,
- java文件流null_JAVA 获取资源文件对象为NULL
- ServletContext读取图片
- 电脑电池修复_笔记本电脑充不进去电如何修复
- mysql 安装后大_Window下MySql 5.6 安装后内存占用很高的问题
- Visual Studio Code(VS Code)入门
- 520 情人节 :属于 Python 程序员的脱单攻略大合集(视频版)
- 11 个让你吃惊的 Linux 终端命令-转
- python函数里面可以修改一些数据类型
- 随机事件、随机变量、概率、概率密度函数
- LOJ#3083. 「GXOI / GZOI2019」与或和(单调栈)
- 全开源微信小程序商城系统源码:基于Java+uniapp框架开发
- 掌财社:传联想控股收身而退 放弃参与高盛投行计划
- Android信息处理机制
- 室内外无缝定位导航,GPS系统可以实现吗?
- 【codevs4093】 EZ的间谍网络 强连通分量+tarjan缩点
- JVM虚拟机基础知识(JVM位置、类加载生命周期、堆、元空间、jvm常用参数)
- js01--js基础入门
- 【BZOJ2152】聪聪可可 树分治
- 转载:解决服务器上 w3wp.exe 和 sqlserver.exe 的内存占用率居高不下的方案