偶然间在整理电脑的时候发现了以前学习数据结构时写的试验程序,闲来无聊就把它们发到自己的博客吧。

  顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。

  顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

 

#include<iostream>
#include<malloc.h>
#define MAX 100
using namespace std;
typedef char ElemType;
typedef struct Sqlist             //顺序表定义
{ElemType elem [MAX];int length;
};
void InitList(Sqlist *&L)           //顺序表初始化
{L = (Sqlist *)malloc( sizeof(Sqlist) );L->length =0;
}
void DeleteList(Sqlist *&L)    //删除节点
{free(L);
}
int ListEmpty(Sqlist *&L)      //判断队空
{return (L->length==0);
}
int ListLength(Sqlist *&L)     //返回链表长度
{return (L->length);
}
void DisplayList(Sqlist *&L)
{int i;if(ListEmpty(L))return ;for(i=0;i<L->length;i++){cout << L->elem[i] <<" ";}cout << endl;
}
int GetElem (Sqlist *L,int i,ElemType &e)          //得到第i个元素
{if(i<1 || i>L->length)return 0;e = L->elem[i-1];return 1;
}
int LocateElem(Sqlist *L,ElemType e)
{int i = 0;while(i<L->length && L->elem[i] != e)   i++;if(i >= L->length)return 0;elsereturn i+1;
}
int ListInsert(Sqlist *&L,int i,ElemType e)
{int j;if(i<1 || i>L->length+1)return 0;i--;for(j=L->length;j>i;j--)L->elem[j]=L->elem[j-1];L->elem[i] = e;L->length++;return 1;
}
int ListDelete(Sqlist *&L, int  i,ElemType &e)
{int j;if(i<1 || i>L->length)return 0;i--;e = L->elem[i];for (j=i; j<L->length-1;j++)L->elem[j] = L->elem[j+1];L->length--;return 1;
}
int main()
{Sqlist *L;ElemType e;InitList(L);ListInsert(L,1,'a'); DisplayList(L);ListInsert(L,2,'b'); DisplayList(L);ListInsert(L,3,'c'); DisplayList(L);ListInsert(L,4,'d'); DisplayList(L);ListInsert(L,5,'e'); DisplayList(L);ListInsert(L,6,'f'); DisplayList(L);ListInsert(L,1,'a'); DisplayList(L);ListInsert(L,2,'b'); DisplayList(L);ListInsert(L,3,'c'); DisplayList(L);ListInsert(L,4,'d'); DisplayList(L);ListInsert(L,5,'e'); DisplayList(L);DisplayList(L);cout << "顺序表长度:"  << ListLength(L) <<endl;cout << "顺序表L:" << (ListEmpty(L)?"空":"非空") <<endl;GetElem(L,3,e);cout << "顺序表L的第3个元素是:" << e <<endl;cout << "元素a的位置为:" << LocateElem(L,'a') <<endl;cout << "在第四个位置插入元素n \n";ListInsert(L,4,'n');cout << "输出顺序表:";DisplayList(L);cout << "删除第三个元素:\n";ListDelete(L,3,e);cout << "输出顺序表:";DisplayList(L);cout << "释放顺序表:";DeleteList(L);DisplayList(L);
}

  

 

转载于:https://www.cnblogs.com/theast/archive/2013/05/08/3066637.html

基本数据结构----顺序表相关推荐

  1. C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...

    c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...

  2. 数据结构-顺序表(动态分配存储空间)

    数据结构-顺序表(动态分配存储空间) (1)顺序表的结构定义: 结构型定义:(动态分配存储空间) /*** 动态分配存储空间*/ #define InitSize 100 //动态分配存储空间时,不限 ...

  3. C语言/C++常见习题问答集锦[八十三]之数据结构顺序表(operand types are error: no match for “operator==“)

    C语言/C++常见习题问答集锦[八十三]之数据结构顺序表{operand types are error: no match for "operator=="} 程序之美 前言 主 ...

  4. 数据结构--顺序表的使用

    数据结构--顺序表的使 #include<iostream> #include<cstdio> #include<cstring> using namespace ...

  5. Educoder头歌数据结构顺序表及其应用

    头歌实践平台答案educoder 数据结构-顺序表及其应用 第1关:顺序表的实现之查找功能 /***************************************************** ...

  6. 数据结构——顺序表的合并

    数据结构--顺序表的合并 具体要求:写一个函数,其函数的功能是将非递增顺序表LA和LB合并到非递增顺序表LC中 数据结构-顺序表的操作之合并顺序表 一.顺序表的结构 首先要定义的是顺序表的结构体,只有 ...

  7. python顺序表数组_数据结构 | 顺序表

    什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中. 比如:列表.集合与字典等都 ...

  8. 8.基本数据结构-顺序表和链表

    一.内存 - 计算机的作用:对数据进行存储和运算.首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据.例如下载好的一部电影,该电影可以存储到计算机中,计 ...

  9. 数据结构顺序表基本流程

    生活中很多事物是有顺序关系的,如班级座位从前到后是按排的顺序,从左到右是按列的顺序,可以很方便的定位到某一个位置,但如果座位是散乱的,就很难定位. 在程序中,经常需要将一组(通常是同为某个类型的)数据 ...

  10. C#数据结构-顺序表

    顺序表,顾名思义存储在计算机指定内存区域的一块连续的存储结构,跟我们一起排队做广播体操的那种方式 存储物理结构:物理内存空间上是连续的 存储逻辑关系:存储值之间的关系为一对一 使用场景:一般访问数据量 ...

最新文章

  1. 域密码自助重置系统----绑定私人邮箱信息自助重置(一)
  2. linux c文件属性,【linux c learn 之stat】获取文件的属性
  3. 第二十八章:化学学校
  4. 158 行 Python 代码,复现 DeepMind 递归神经网络 DRAW!
  5. 循环神经网络之LSTM和GRU
  6. 腾讯视频QLV格式转换为MP4格式
  7. HTML5颜色选择器(画布)
  8. CloudComparePCL 主曲率、平均曲率以及高斯曲率计算
  9. hdu1429推箱子
  10. 父亲节python代码半个心_2019父亲节活动方案,暖心来袭!
  11. python--基于百度aip的语音交互及语音唤醒
  12. MATLAB椎体怎么画,最适合小白的matlab教程系列,进阶,一
  13. asp.net打开新标签页
  14. bgproperties属性
  15. 2023-2028年中国燕麦奶行业市场预测与投资规划分析报告
  16. 什么软件质量/如何评价软件的质量
  17. [转]QNX系统-基于高通骁龙SA8155平台,中科创达发布智能驾驶舱3.0解决方案
  18. php体育网站模板,运动健身企业的网站模板
  19. 【labelme】标注工具报错ValueError: min() arg is an empty sequence
  20. 设计秒流量与管径关系表

热门文章

  1. 区块链 Fisco bcos 智能合约(13)-Solidity的设计模式
  2. 区块链 如何提高TPS 为什么区块大小和出块速度越大越好
  3. c语言一个偶数用两个素数表示,用C语言(C99) 验证哥德巴赫猜想:一个不小于6的偶数必定能表示为两个素数之和。...
  4. vlc linux静态版本,vlc 在ubuntu 14下的linux版本编译
  5. mysql 为什么性能不稳定_浅谈MySQL 数据库性能优化
  6. 数据库读写分离这个坑,你应该踩过吧?
  7. 项目2:PHP抽奖程序 ,抽奖规则代码
  8. LayaAir 性能统计面板 laya.utils.Stat
  9. Html 5 网络存储之 LocalStorage、SessionStorage
  10. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_17-CMS前端工程创建-单页面应用介绍...