2.2.1 顺序表

用C语言描述的顺序表类型如下所示:

// 存储结构

const int MAXLISTSIZE=80; // 预设的存储空间最大容量

typedef struct {

ElemType *elem;    // 存储空间基址

int length;      // 当前长度

int listsize;     //

允许的最大存储容量(以sizeof(ElemType)为单位)

} SqList;       // 俗称 顺序表

由于线性表的长度是可变的,因此对顺序表的定义除了需要一个存储元素的一维数组空间以外,还需要两个数据成员:其中一个指示顺序表中已有的元素个数,另一个指示该顺序表允许存放的数据元素个数的最大值,如下图所示。ElemType

为元素类型。

// 基本操作接口(函数声明)

void InitList ( SqList &L, int maxsize );

// 构造一个最大存储容量为 maxsize 的空的顺序表 L。

maxsize 由用户设定,其默认值为系统设定值MAXLISTSIZE 。

void DestroyList ( SqList

&L )

// 销毁顺序表 L。

bool ListEmpty ( SqList L )

// 若顺序表 L 为空表,则返回TRUE,否则返回 FALSE。

int ListLength ( SqList L )

// 返回顺序表 L 中元素个数。

int PriorElem ( SqList L, ElemType cur_e )

// 若 cur_e 是顺序表 L 的元素,则返回其前驱的位序

// (设第一个元素的前驱的位序为0),否则返回 -1。

int NextElem ( SqList L, ElemType cur_e )

// 若 cur_e 是顺序表 L 的元素,则返回其后继的位序

// (设最后一个元素的后继的位序为L的表长+1),否则返回 -1。

bool GetElem ( SqList L, int pos, ElemType &e )

// 若1≤pos≤LengthList(L),则用 e 带回顺序表 L 中第 pos

个元素

// 的值且返回函数值为TRUE,否则返回函数值为FALSE。

int LocateElem ( SqList L, ElemType e, bool

(*compare)(ElemType, ElemType ) )

// 返回顺序表L中第1个与 e 满足关系 compare( )

的数据元素的位序。

// 若这样的元素不存在,则返回值为0。compare(

)为数据元素的判定函数。

void ListTraverse ( SqList L, void (*visit)(ElemType ))

// 依次对顺序表 L 的每个元素调用函数 visit( )。

// 一旦 visit( ) 失败,则操作失败。

void ClearList( SqList &L )

// 将顺序表 L 重置为空表。

bool PutElem ( SqList L, int pos, ElemType &e )

// 若1≤pos≤LengthList(L),则对顺序表 L 中第 pos 个元素

// 赋值同 e 的值且返回函数值为 TRUE,否则返回函数值为

FALSE。

bool ListInsert ( SqList &L, int pos, ElemType e )

// 若存储空间未满且1≤pos≤LengthList(L)+1,则在顺序表 L

// 第 pos 个元素之前插入新的元素

e,L的长度增1,且返回函数值为TRUE,

// 否则不改变顺序表且返回函数值为 FALSE。

bool ListDelete ( SqList &L, int pos, ElemType

&e)

// 若1≤pos≤LengthList(L),则删除顺序表 L 的第 pos 个元素

e,

// L的长度增1,且返回函数值为TRUE,否则不改变顺序表且返回函数值为FALSE

c语言顺序表有效元素长度,用C语言描述的顺序表类型相关推荐

  1. c语言顺序表有效元素长度,C语言版数据结构顺序表的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 52.Status ListInsert_Sq(SqList *L, int i, ElemType e) 53.{ 54.     ElemType * ...

  2. c语言中字母的长度是,c语言字符串长度怎么算

    本文收集整理关于c语言字符串长度怎么算的相关议题,使用内容导航快速到达. 内容导航: Q1:c语言计算字符串的长度(用指针) 12345678910111213141516171819#include ...

  3. c语言strcpy两字符串长度不同,C语言 strcpy和memcpy区别详细介绍

    C语言 strcpy和memcpy区别详细介绍 PS:初学算法,开始刷leetcode,Rotate array的预备知识(写的代码Time Limit Exceed难过)于是百度高效算法,本篇作为预 ...

  4. 编写C语言函数求字符串长度,用C语言编写函数,实现strlen计算字符串长度的功能...

    本文介绍三种方法: 1.循环计数法,(设置一个计数器). 2.递归法,(函数调用自身进行计算) 3.指针-指针法,(库函数使用的是此方法) 现在列入程序: 方法1: /* 计数法 */ int my_ ...

  5. 《数据结构上机实验(C语言实现)》笔记(2 / 12):线性表

    文章目录 验证性实验 实现顺序表各种基本运算的算法 放码 sqlist.h sqlist.cpp exp2-1.cpp 结果 实现单链表各种基本运算的算法 放码 linklist.h linklist ...

  6. Swift3.0语言教程获取字符串长度

    Swift3.0语言教程获取字符串长度 Swift3.0语言教程获取字符串长度,当在一个字符串中存在很多的字符时,如果想要计算字符串的长度时相当麻烦的一件事情,在NSString中可以使用length ...

  7. 数据结构-顺序表结构的实现C语言(全代码)

    课程设计题目 设计出顺序表结构的相关函数库,以便在程序设计中调用. 题目要求 (1)包括线性表的各种基本函数以及常用函数(自己确定函数.函数形式及理由) (2)最好能借助语言环境实现图形显示功能,以便 ...

  8. c语言顺序表所需的头文件,数据结构【顺序表】

    1.线性表定义 线性表是一种线性结构.线性结构的特点是数据元素之间是一种线性关系,数据元素"一个接一个的排列".在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据 ...

  9. 数组指定位置添加元素_数据结构--顺序表的9种基本运算,初始化,销毁,判断是否为空表,长度,求指定位置的元素值......

    成功实现后的示意图为: 代码为: // 线性表-顺序表.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. //顺序表的9种基本运算 #include &qu ...

最新文章

  1. boost::pfr::detail::fields_count相关的测试程序
  2. c语言基类型,C语言基本类型边界值
  3. 高可用的 MFS 文件分布式系统(Drdb+heartbeat+MFS )
  4. 系统仿真平台SkyEye可替代国外Matlab/Sumlink等同类软件
  5. QQ动态头像和动态主页
  6. java http get和post请求
  7. 推荐三个实用的开源项目
  8. 搭建阿里云服务器内有阿里云幸运券
  9. 天视通电脑版APP怎么添加录像机_手机怎么远程连接海康录像机,手把手教你、、、...
  10. matlab 如何查数据类型,MATLAB数据类型
  11. 备份手机相册----syncthing (一劳永逸式解决方案)
  12. 「漫談數位音樂」5~音樂CD複製要點
  13. Eclipse笔记-关于Maven Pom Editor的一个小问题
  14. VPP GTP-U隧道性能测试3---GTP-U封包性能测试
  15. Openjudge NOI题库 ch0111/10 河中跳房子|NOIP2015 day2 stone
  16. 微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据 下篇
  17. 使用Socket实现点对点的文件传输
  18. Vue(Vue脚手架)
  19. iOS-申请苹果开发者账号之邓白氏编码查询
  20. checkbox选中和不选中 jqu_jQuery控制checkbox选中状态但是不显示选中

热门文章

  1. 在CentOS 6.6 x86_64上安装SystemTap/Perf+FlameGraph玩转火焰图实录
  2. 在Ubuntu 14.04 64bit上进行md5加密编程
  3. Go 分布式学习利器(15) -- Go 实现 深搜和广搜
  4. 2019年3月8日比赛(知网是什么)
  5. layui栅格布局问题
  6. 防火墙iptables介绍
  7. 3.分支结构与循环结构
  8. Linux UserSpace Back-Door、Rootkit SSH/PAM Backdoor Attack And Defensive Tchnology
  9. Oracle用户管理
  10. ptam tracking