c语言顺序表有效元素长度,用C语言描述的顺序表类型
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语言描述的顺序表类型相关推荐
- c语言顺序表有效元素长度,C语言版数据结构顺序表的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 52.Status ListInsert_Sq(SqList *L, int i, ElemType e) 53.{ 54. ElemType * ...
- c语言中字母的长度是,c语言字符串长度怎么算
本文收集整理关于c语言字符串长度怎么算的相关议题,使用内容导航快速到达. 内容导航: Q1:c语言计算字符串的长度(用指针) 12345678910111213141516171819#include ...
- c语言strcpy两字符串长度不同,C语言 strcpy和memcpy区别详细介绍
C语言 strcpy和memcpy区别详细介绍 PS:初学算法,开始刷leetcode,Rotate array的预备知识(写的代码Time Limit Exceed难过)于是百度高效算法,本篇作为预 ...
- 编写C语言函数求字符串长度,用C语言编写函数,实现strlen计算字符串长度的功能...
本文介绍三种方法: 1.循环计数法,(设置一个计数器). 2.递归法,(函数调用自身进行计算) 3.指针-指针法,(库函数使用的是此方法) 现在列入程序: 方法1: /* 计数法 */ int my_ ...
- 《数据结构上机实验(C语言实现)》笔记(2 / 12):线性表
文章目录 验证性实验 实现顺序表各种基本运算的算法 放码 sqlist.h sqlist.cpp exp2-1.cpp 结果 实现单链表各种基本运算的算法 放码 linklist.h linklist ...
- Swift3.0语言教程获取字符串长度
Swift3.0语言教程获取字符串长度 Swift3.0语言教程获取字符串长度,当在一个字符串中存在很多的字符时,如果想要计算字符串的长度时相当麻烦的一件事情,在NSString中可以使用length ...
- 数据结构-顺序表结构的实现C语言(全代码)
课程设计题目 设计出顺序表结构的相关函数库,以便在程序设计中调用. 题目要求 (1)包括线性表的各种基本函数以及常用函数(自己确定函数.函数形式及理由) (2)最好能借助语言环境实现图形显示功能,以便 ...
- c语言顺序表所需的头文件,数据结构【顺序表】
1.线性表定义 线性表是一种线性结构.线性结构的特点是数据元素之间是一种线性关系,数据元素"一个接一个的排列".在一个线性表中数据元素的类型是相同的,或者说线性表是由同一类型的数据 ...
- 数组指定位置添加元素_数据结构--顺序表的9种基本运算,初始化,销毁,判断是否为空表,长度,求指定位置的元素值......
成功实现后的示意图为: 代码为: // 线性表-顺序表.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. //顺序表的9种基本运算 #include &qu ...
最新文章
- boost::pfr::detail::fields_count相关的测试程序
- c语言基类型,C语言基本类型边界值
- 高可用的 MFS 文件分布式系统(Drdb+heartbeat+MFS )
- 系统仿真平台SkyEye可替代国外Matlab/Sumlink等同类软件
- QQ动态头像和动态主页
- java http get和post请求
- 推荐三个实用的开源项目
- 搭建阿里云服务器内有阿里云幸运券
- 天视通电脑版APP怎么添加录像机_手机怎么远程连接海康录像机,手把手教你、、、...
- matlab 如何查数据类型,MATLAB数据类型
- 备份手机相册----syncthing (一劳永逸式解决方案)
- 「漫談數位音樂」5~音樂CD複製要點
- Eclipse笔记-关于Maven Pom Editor的一个小问题
- VPP GTP-U隧道性能测试3---GTP-U封包性能测试
- Openjudge NOI题库 ch0111/10 河中跳房子|NOIP2015 day2 stone
- 微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据 下篇
- 使用Socket实现点对点的文件传输
- Vue(Vue脚手架)
- iOS-申请苹果开发者账号之邓白氏编码查询
- checkbox选中和不选中 jqu_jQuery控制checkbox选中状态但是不显示选中
热门文章
- 在CentOS 6.6 x86_64上安装SystemTap/Perf+FlameGraph玩转火焰图实录
- 在Ubuntu 14.04 64bit上进行md5加密编程
- Go 分布式学习利器(15) -- Go 实现 深搜和广搜
- 2019年3月8日比赛(知网是什么)
- layui栅格布局问题
- 防火墙iptables介绍
- 3.分支结构与循环结构
- Linux UserSpace Back-Door、Rootkit SSH/PAM Backdoor Attack And Defensive Tchnology
- Oracle用户管理
- ptam tracking