编程实现ADT List 基本操作13个(一)顺序结构

本文介绍了如何使用C++编程实现抽象数据类型(ADT)List的13个基本操作,采用顺序结构进行实现。具体内容包括List的创建、插入、删除等操作,但未展示具体运行结果。
摘要由CSDN通过智能技术生成

编程实现 ADT List 基本操作13个(一)

ADT List如下

ADT List
{
   
	数据对象:D = {
   ai|ai∈ElemSet,i=1, 2,, n, n≥0}
	数据关系:R = {
   <ai-1, a>|ai-1, ai∈D, i=2,, n}
	基本操作:
		//1.初始化、销毁和清空操作
		InitList( &L )
		操作结果:构造一个空的线性表L
		DestroyList( &L )
		初始条件:线性表L已存在
		操作结果:销毁线性表
		ClearList( &L )
		初始条件:线性表L已存在
		操作结果:将线性表L重置为空表
		//2.访问型操作
		ListEmpty( L )
		初始条件:线性表L已存在
		操作结果:若线性表L为空表,则返回TRUE,否则返回FALSE
		ListLength( L )
		初始条件:线性表L已存在
		操作结果:返回线性表L的元素个数
		GetElem( L, i, &e )
		初始条件:线性表L已存在,且1≤i≤ListLength(L)
		操作结果:用参数e返回线性表L中第i个元素的值
		LocateElem( L, e )
		初始条件:线性表已存在
		操作结果:返回线性表L中第一个与参数e相同的数据元素的位置。若这样的元素不存在,则返回0
		PriorElem( L, cur_e, &pre_e )
		初始条件:线性表L已存在
		操作结果:若cur_e是线性表L中的数据元素,且不是第一个元素,则用pre_e返回其前驱元素,否则操作失败,pre_e无意义
		ListTraverse( L )
		初始条件:线性表L已存在
		操作结果:从线性表第一个元素开始,依次访问并输出线性表的数据元素
		//3.加工型操作
		SetElem( &L, i, &e )
		初始条件:线性表L已存在,1≤i≤ListLength(L)
		操作结果:将线性表L中第1个元素的值用参数e替换,并将旧值用参数e返回
		InsertElem( &L, i, e )
		初始条件:线性表L已存在,1≤i≤ListLength(L)+1
		操作结果:将线性表L中第i个元素的值用参数e替换,并将旧值用参数返回
		DeleteElem( &L, i, &e )
		初始条件:线性表L已存在,1≤i≤ListLength(L)
		操作结果:删除线性表L中第i个位置上的数据元素,并用参数e返回其元素值,原来第i+1个到第n个元素依次向前移动一个位置,线性表L的长度减1
}	//ADT List

使用顺序结构实现

#include <iostream>
#include <stdlib.h>
using namespace std;
#define ListInitSize 128								//初次分配空间大小 
#define ListIncrement 256								//空间分配增量大小 

typedef struct List
{
   
	int *pData;										//动态存储空间的基地址 
	int length;										//存储数据元素的个数
	int size;										//当前已分配的存储空间的大小 
}List;

void InitList( List &L )
{
   	//初始化顺序表 
	L.pData = (int *)malloc(ListInitSize * sizeof(int));			//申请存储空间
	if( L.pData == NULL 
  • 15
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值