第三周 项目一——顺序表的基本运算(2)
来源:互联网 发布:mac怎么免费下载软件 编辑:程序博客网 时间:2024/06/07 00:34
问题及代码:
/* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:顺序表的基本运算.cpp 作 者: 周国亮完成日期:2016年9月17日 版 本 号:v1.0 问题描述:测试“建立线性表”的算法CreateList,查看建表结果 输入描述:无 程序输出:若干数据。 */ #include"111.h" int main() { SqList *sq; ElemType x[6]= {5,8,7,2,4,6}; ElemType a; int s1,s2,s3,s4,s5; int loc; CreateList(sq, x, 6); DispList(sq); printf("表长度:%d\n", ListLength(sq)); //测试求长度 cout<<"请输入你要查找的元素的位置:"; //测试查找元素的位置 cin>>s2; if(GetElem(sq, s2, a)) cout<<"位置为"<<s2<<"的元素为:"<<a<<endl; else cout<<"位置为"<<s2<<"的元素不存在"<<endl; cout<<"请输入你要查找的元素:"; //测试查找元素 cin>>s1; if((loc=LocateElem(sq, s1))>0) cout<<"值为"<<s1<<"的元素是第"<<loc<<"个元素"<<endl; else cout<<"没有值为"<<s1<<"的元素"<<endl; cout<<"请输入你要插入的元素和你要插入的位置(位置小于等于6):"; cin>>s3>>s4; ListInsert(sq,s4,s3); DispList(sq); cout<<"请输入你要删除的元素的位置(位置小于等于6):"; cin>>s5; ListDelete(sq,s5); DispList(sq); DestroyList(sq); return 0; }
#include"111.h" void CreateList(SqList *&L, ElemType a[], int n) //用数组创建线性表 { int i; L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表得空间 for (i=0; i<n; i++) //放置数据元素 L->data[i]=a[i]; L->length=n; //设置长度 } void DispList(SqList *L) //输出线性表DispList(L) { int i; if (ListEmpty(L)) return; for (i=0; i<L->length; i++) printf("%d ",L->data[i]); printf("\n"); } bool ListEmpty(SqList *L) //判定是否为空表ListEmpty(L) { return(L->length==0); } int ListLength(SqList *L) //求线性表的长度ListLength(L) { return(L->length); } bool GetElem(SqList *L,int i,ElemType &e) //求某个数据元素值GetElem(L,i,e) { if (i<1 || i>L->length) return false; e=L->data[i-1]; return true; } int LocateElem(SqList *L, ElemType e) //按元素值查找LocateElem(L,e) { int i=0; while (i<L->length && L->data[i]!=e) i++; if (i>=L->length) return 0; else return i+1; } bool ListInsert(SqList *L,int i,ElemType e) //插入数据元素ListInsert { int j; if(i<1||i>L->length+1) return false; i--; //将逻辑序号转化为物理序号 for(j=L->length;j>i;j--) L->data[j]=L->data[j-1]; L->data[i]=e; L->length++; return true; } bool ListDelete(SqList *L,int i) //删除数据元素ListDelete { int j; if(i<1||i>L->length+1) return false; i--; //将逻辑序号转化为物理序号 for(j=i;j<L->length;j++) L->data[j]=L->data[j+1]; L->length--; return true; } void DestroyList(SqList *&L)//销毁顺序表 { free(L); }
#include"111.h" void CreateList(SqList *&L, ElemType a[], int n) //用数组创建线性表 { int i; L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表得空间 for (i=0; i<n; i++) //放置数据元素 L->data[i]=a[i]; L->length=n; //设置长度 } void DispList(SqList *L) //输出线性表DispList(L) { int i; if (ListEmpty(L)) return; for (i=0; i<L->length; i++) printf("%d ",L->data[i]); printf("\n"); } bool ListEmpty(SqList *L) //判定是否为空表ListEmpty(L) { return(L->length==0); } int ListLength(SqList *L) //求线性表的长度ListLength(L) { return(L->length); } bool GetElem(SqList *L,int i,ElemType &e) //求某个数据元素值GetElem(L,i,e) { if (i<1 || i>L->length) return false; e=L->data[i-1]; return true; } int LocateElem(SqList *L, ElemType e) //按元素值查找LocateElem(L,e) { int i=0; while (i<L->length && L->data[i]!=e) i++; if (i>=L->length) return 0; else return i+1; } bool ListInsert(SqList *L,int i,ElemType e) //插入数据元素ListInsert { int j; if(i<1||i>L->length+1) return false; i--; //将逻辑序号转化为物理序号 for(j=L->length;j>i;j--) L->data[j]=L->data[j-1]; L->data[i]=e; L->length++; return true; } bool ListDelete(SqList *L,int i) //删除数据元素ListDelete { int j; if(i<1||i>L->length+1) return false; i--; //将逻辑序号转化为物理序号 for(j=i;j<L->length;j++) L->data[j]=L->data[j+1]; L->length--; return true; } void DestroyList(SqList *&L)//销毁顺序表 { free(L); }
学习心得:顺序表十分灵活
0 0
- 第三周——项目一—顺序表的基本运算(2)
- 第三周 项目一——顺序表的基本运算(2)
- 第三周 项目一——顺序表的基本运算(2)
- 第三周项目一(2)—顺序表的基本运算
- 第三周——项目一—顺序表的基本运算(1)
- 第三周——项目一—顺序表的基本运算(3)
- 第三周 项目一——顺序表的基本运算(1)
- 第三周 项目一——顺序表的基本运算(1)
- 第三周项目一(1)—顺序表的基本运算
- 第三周项目一(3)—顺序表的基本运算
- 第三周 --项目一【顺序表的基本运算一】
- 第三周 项目一:顺序表的基本运算
- 第三周项目一顺序表的基本运算
- 第三周 项目一 顺序表的基本运算
- 第三周项目一顺序表的基本运算
- 第三周项目一 顺序表的基本运算
- 第三周项目一 顺序表的基本运算
- 第三周项目一--顺序表的基本运算
- fragment实现横竖屏的切换
- Activity的起步流程分析
- linux du命令
- 【原创】东方耀reactnative 视频21之-ProgressBar
- openGL ES 图形绘制(详解)
- 第三周 项目一——顺序表的基本运算(2)
- mysql基本操作
- Android启动过程深入解析
- 浏览器的标准模式和怪异模式
- mysql变量的术语分类
- python讀取NC文件畫風速等值線圖
- Eclipse安装Python插件
- 关于java对象初始化顺序
- Android 核心分析 之八------Android 启动过程详解