书中的代码:

  1 #include <iostream>
  2 using namespace std;
  3
  4 #define MaxSize 50
  5 typedef int ElemType;
  6 typedef struct
  7 {
  8     ElemType data[MaxSize];
  9     int length;
 10 }Sqlist;
 11
 12 //1.初始化线性表
 13 void InitList(Sqlist * &L)
 14 {
 15     L = (Sqlist *)malloc(sizeof(Sqlist));
 16     L->length = 0;
 17 }
 18 //2.销毁线性表
 19 void DestroyList(Sqlist * &L)
 20 {
 21     free(L);
 22 }
 23 //3.判断线性表是否为空
 24 bool ListEmpty(Sqlist * &L)
 25 {
 26     return (L->length == 0);
 27 }
 28 //4.返回线性表的长度
 29 int ListLength(Sqlist * L)
 30 {
 31     return L->length;
 32 }
 33 //5.输出线性表
 34 void DispList(Sqlist * &L)
 35 {
 36     for (size_t i = 0; i < L->length; i++)
 37     {
 38         printf("%d", L->data[i]);
 39         printf("\n");
 40     }
 41
 42 }
 43 //6.求线性表中某个数据元素
 44 bool GetElem(Sqlist * L, int i, ElemType &e)
 45 {
 46     if (i <1 || i>L->length)
 47     {
 48         return false;
 49     }
 50     e = L->data[i - 1];
 51     return true;
 52 }
 53 //7.按元素值进行查找
 54 int LocateElem(Sqlist * L, ElemType e)
 55 {
 56     int i = 0;
 57     while (i < L->length && L->data[i] != e)
 58     {
 59         i++;
 60     }
 61     if (i > L->length)
 62     {
 63         return 0;
 64     }
 65     else
 66     {
 67         return i + 1;
 68     }
 69 }
 70 //8.插入数据元素
 71 bool ListInsert(Sqlist * &L, int i, ElemType e)
 72 {
 73     int j = 0;
 74
 75     if (i<1 || i >L->length+1)
 76     {
 77         return false;
 78     }
 79     i--;
 80     for (j = L->length; j > i; j--)
 81     {
 82         L->data[j] = L->data[j - 1];
 83     }
 84     L->data[i] = e;
 85     L->length++;
 86
 87
 88     return true;
 89 }
 90 //9.删除数据元素
 91 bool ListDelete(Sqlist * &L, int i, ElemType &e)
 92 {
 93     int j = 0;
 94     if (i<1 || i>L->length)
 95     {
 96         return false;
 97     }
 98     i--;
 99     e = L->data[i];
100     for (j = i; j < L->length - 1; j++)
101     {
102         L->data[j] = L->data[j + 1];
103     }
104     L->length--;
105     return true;
106 }
107
108 int main()
109 {
110     Sqlist * L;
111     InitList(L);//初始化顺序表
112     ListInsert(L, 1, 1);
113     ListInsert(L, 2, 2);
114     ListInsert(L, 3, 3);
115     ListInsert(L, 4, 4);
116     ListInsert(L, 5, 5);
117     DispList(L);
118     printf("当前的长度:%d",ListLength(L));
119     getchar();
120     return 0;
121 }

View Code

转载于:https://www.cnblogs.com/xifengmo/p/11149009.html

顺序表的结构和9个基本运算算法相关推荐

  1. 《数据结构》实验报告(一)——顺序表存储结构及实现

    顺序表存储结构及实现--学生信息管理 一.实验目的 (1) 掌握顺序表的概念及实现方式. (2) 掌握顺序表的存储结构及主要运算:建立.查找.插入.删除等. 二.实验环境 Windows 10,Mic ...

  2. 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...

    还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...

  3. 实验题一(实现顺序表各种基本运算的算法)

    目的:领会顺序表存储结构和掌握顺序表中各种基本运算算法设计. 内容:编写一个.cpp的程序,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型为 Elemtype char),并在此基础上设 ...

  4. 【数据结构】:实现顺序表各种基本运算的算法

    文章目录 目的 内容 二.详细代码 运行结果 目的 领会顺序表存储结构和掌握顺序表中各种基本运算算法设计. 内容 编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的 ...

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

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

  6. php算法结构,PHP数据结构与算法:顺序表

    一.概念 把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里,元素间的顺序关系由它们的存储顺序自然表示. 逻辑顺序与物理顺序一致 元素之间的关系以元素在计算机内的"物理位置相邻&qu ...

  7. C++ 线性表的结构体定义(顺序表和链式表)

    线性表的结构体定义: 1.顺序表的结构体定义 typedef struct {int data[maxSize];int length;} Sqlist; 2.单链表结点的结构体定义 typedef ...

  8. 顺序表的c语言结构体描述,顺序表的基本方法实现C语言版

    顺序表--------------线性表的第一个儿子 这个儿子的结构体定义: typedef int ElemType;//取别名 typedef struct link{ ElemType * he ...

  9. 实现一个顺序表的建立、查找、插入和删除操作【数据结构实验报告】

    文章目录 一.实验目的 二.算法说明 三.算法实现 四.测试效果 一.实验目的 1.熟悉将算法转换为程序代码的过程. 2.了解顺序表的逻辑结构特性,熟练掌握顺序表存储结构的c语言描述方法. 3.熟练掌 ...

最新文章

  1. 使用结构体数组统计男、女人数,计算全体学生的平均年龄、平均成绩,并将高于平均成绩的学生信息输出
  2. mysql8.0远程linux_【Linux】【mysql】mysql8.0开启远程访问及常见问题
  3. 期末数据结构复习稳过不挂指南(更新中)
  4. WordPress Event Easy Calendar插件多个跨站请求伪造漏洞
  5. 带宽与码元的关系_再遇到码元、速率、、带宽【9】
  6. Docker容器化部署python
  7. python iterableiterator
  8. mybatis redis_SpringBoot + Mybatis + Shiro + mysql + redis智能平台源码分享
  9. asp.net mvc 2.0 TryValidateModel(Object)方法
  10. ensp由于win10 ARP表项未过期导致网络不通排查
  11. Unity+JetBrainsRider2020+EmmyLua调试Lua(XLua)
  12. 用php打竖的文字_手写php函数处理 竖排文字
  13. Android 使用经典蓝牙
  14. vue遇到的小白问题之三——按钮的点击效果的实现
  15. SDN交换机在云计算网络中的应用场景
  16. 针对Android平台播放器开源库NiceVieoPlayer倍速的开发
  17. IPP库的安装以及源码分析方法
  18. Linux 触摸屏 笔记本,Linux 5.2应该可以解决许多AMD Ryzen笔记本电脑触摸屏/触摸板无法工作的问题...
  19. 前端调用手机相机拍照
  20. 环境监测系统/智能监测平台---Vue/Node.js

热门文章

  1. BeautifulSoup的高级应用 之 contents children descendants string strings stripped_strings
  2. WordPress中的cookie 机制
  3. socket传输过程
  4. 为什么watch机制不是银弹?
  5. Windows程序的基本结构(转)
  6. 计算器软件----表达式求值
  7. Java Stream流的概念
  8. 基于Tomcat5.0和Axis2开发Web Service代码详解
  9. shiro登陆流程源码详解
  10. 剑指offer-调整数组顺序使奇数位于偶数前面13