数据结构作业1
更新时间:2023-11-16 10:31:01 阅读量: 教育文库 文档下载
C 线性表
1. 初始化线性表L InitList(L) 2. 销毁线性表L DestoryList(L) 3. 清空线性表L ClearList(L) 4. 求线性表L的长度 ListLength(L) 5. 判断线性表L是否为空 IsEmpty(L)
6. 获取线性表L中的某个数据元素内容 GetElem(L,i,e) 7. 检索值为e的数据元素 LocateELem(L,e)
8. 在线性表L中插入一个数据元素 ListInsert(L,i,e) 9. 删除线性表L中第i个数据元素 ListDelete(L,i,e)
1. 初始化线性表L InitList(L)
Status InitList_Sq(SqList *L) //构造一个空的顺序表L {
L-> elem=new ElemType[MAXSIZE]; //为顺序表分配空间 if(! L-> elem) exit(OVERFLOW); //存储分配失败 L-> length=0; //空表长度为0 return OK; }
2. 销毁线性表L DestoryList(L) void DestroyList(SqList &L) {
if (L.elem) delete[]L.elem; //释放存储空间 }
3. 清空线性表L ClearList(L) void ClearList(SqList &L) {
L.length=0; //将线性表的长度置为0 }
4. 求线性表L的长度 ListLength(L) int GetLength(SqList L) {
return (L.length); }
5. 判断线性表L是否为空 IsEmpty(L) int IsEmpty(SqList L) {
if (L.length==0) return 1; else return 0; }
6. 获取线性表L中的某个数据元素内容 GetElem(L,i,e) //根据指定位置,获取相应位置数据元素的内容 int GetElem(SqList L,int i,ElemType &e) {
if (i<1||i>L.length) return ERROR;
//判断i值是否合理,若不合理,返回ERROR e=L.elem[i-1]; //第i-1的单元存储着第i个数据 return OK; }
7. 检索值为e的数据元素 LocateELem(L,e)
int LocateELem(SqList L,ElemType e) {
for (i=0;i< L.length;i++)
if (L.elem[i]==e) return i+1; return 0;
8. 在线性表L中插入一个数据元素 ListInsert(L,i,e)
Status ListInsert_Sq(SqList &L,int i ,ElemType e){
if(i<1 || i>L.length+1) return ERROR; //i值不合法
if(L.length==MAXSIZE) return ERROR; //当前存储空间已满 for(j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j]; //插入位置及之后的元素后移
L.elem[i-1]=e; //将新元素e放入第i个位置 ++L.length; //表长增1 return OK; }
9. 删除线性表L中第i个数据元素 ListDelete(L,i,e) Status ListDelete_Sq(SqList &L,int i,ElemType &e){ if((i<1)||(i>L.length)) return ERROR; //i值不合法
e=L.elem[i-1]; //将欲删除的元素保留在e中 for (j=i;j<=L.length-1;j++)
L.elem[j-1]=L.elem[j]; //被删除元素之后的元素前移 --L.length; //表长减1 return OK; }
栈
顺序栈的表示
#define MAXSIZE 100 typedef struct
{
SElemType *base; SElemType *top; int stacksize;
}SqStack; 顺序栈初始化
Status InitStack( SqStack &S ) { }
判断顺序栈是否为空 bool StackEmpty( SqStack S ) {
if(S.top == S.base) return true; S.base =new SElemType[MAXSIZE]; if( !S.base ) return OVERFLOW; S.top = S.base;
S.stackSize = MAXSIZE; return OK;
else return false; }
求顺序栈的长度
int StackLength( SqStack S )
{ }
清空顺序栈
Status ClearStack( SqStack S ) { }
销毁顺序栈
Status DestroyStack( SqStack &S ) {
if( S.base ) { }
delete S.base ; S.stacksize = 0; S.base = S.top = NULL; if( S.base ) S.top = S.base; return OK;
return S.top – S.base;
return OK; }
顺序栈进栈
Status Push( SqStack &S, SElemType e)
{
if( S.top - S.base== S.stacksize ) // 栈满
return ERROR; *S.top++=e; return OK;
}
顺序栈出栈
Status Pop( SqStack &S, SElemType &e) {
if( S.top == S.base ) // 栈空 return ERROR; e= *--S.top; return OK;
}
取顺序栈栈顶元素
Status GetTop( SqStack S, SElemType &e) { if( S.top == S.base ) return ERROR; e = *( S.top – 1 ); return OK; }
C++
栈空 //
正在阅读:
数据结构作业111-16
重温入党誓词的心得09-08
篮球赛解说词(简)12-23
安然事件审计报告06-29
灵溪的夏天作文800字07-02
2011届高考语文文学常识10-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 作业
- 电气自动化 微波干燥机测控系统文献综述
- 南阳市屠宰场资料
- 战略管理战略群组分析
- 时间序列分析试题
- 2020年小学数学一年级下册单元教材分析全册精品精品版
- 0ECD对部分国家房地产及有关政策调查与研究结论
- 水上工程设备公司迁建项目环境影响评价报告表 - 图文
- 建筑施工门式钢管脚手架安全技术规范
- C616车床数控化改造
- 江苏省专业监理工程师习题第七章
- 高级技术问答
- 通风设施构筑精细化标准
- 实验项目4 第1部分 JDBC数据库操作
- 会计手工账务处理(中职学生组)赛题卷 - 图文
- 公园景观工程建设项目可行性研究报告
- 2011 ACM招新 宣传单
- 灰度变换,原理 及Matlab程序
- 15西餐《西餐礼仪》结业考试卷A及答案
- 新验标考核试题(带答案)
- 注射器采血的操作流程及注意事项