第三周 项目2-建设“顺序表”算法库
来源:互联网 发布:国外的知乎 编辑:程序博客网 时间:2024/06/02 07:12
list.h 代码:
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: *作 者:陈军正 *完成日期:2017年9月19日 *版 本 号:v1.0 * *问题描述:*/ #ifndef LIST_H_INCLUDEDbool ListInsert(SqList *&L,int i,ElemType e)#define LIST_H_INCLUDED#define MaxSize 50typedef struct{ int data [MaxSize]; int length;}Sqlist;void CreateList (Sqlist *&L,int a[],int n); ///创建线性表void DispList (Sqlist *&L); ///输出线性表bool EmptyList (Sqlist *&L); ///判断线性表是否为空void ListLength(Sqlist *&L); ///判断线性表的长度void GetElem(Sqlist *&L,int n);/// 按位置查找元素int LocateElem(Sqlist *&L,int n);///查找元素的位置bool ListInsert(Sqlist *&L,int n,int w); ///线性表元素插入bool ListDelete(Sqlist *&L,int i,int &e); ///线性表元素删除void InitList(Sqlist *&L) ; ///线性表初始化void DestroyList(Sqlist *&L);///摧毁线性表#endif // LIST_H_INCLUDED
main.cpp 代码:
#include <iostream>#include "list.h"using namespace std;int main(){ int i,n,c,w,s,y,z; int x[6] = {0,1,2,3,4,5}; Sqlist *sq; CreateList(sq,x,6); ///创建线性表 DispList(sq); ///输出线性表 ListLength(sq);///线性表的长度 cout<<"请输入您想查询的位置:"; cin>>i; GetElem(sq,i); ///按位置查找元素 cout<<"请输入您想确定的元素:"; cin>>n; LocateElem(sq,n);///查找元素的位置 cout<<"请输入想要插入的数据和位置:"; cin>>c>>w; ListInsert(sq,c,w); ///插入线性表元素 DispList(sq); ///线性表输出 cout<<"请输入您想要删除的位置和元素:"; cin>>y>>z; ListDelete(sq,y,z); ///删除线性表 DispList(sq); ///输出线性表 InitList(sq); ///初始化线性表 DestroyList(sq); ///摧毁线性表 return 0;}
list.cpp 代码:
#include "malloc.h"#include "list.h"#include <iostream>using namespace std;void CreateList (Sqlist *&L,int a[],int n) ///创建线性表{ L = (Sqlist *)malloc(sizeof(Sqlist)); ///为线性表开辟动态内存空间 int i; for(i=0; i<n; i++) { L->data[i] = a[i]; } cout<<endl; L->length = n;}void DispList (Sqlist *&L) ///输出线性表{ if (EmptyList(L)) for (int i=0; i<L->length; i++) cout<<L->data[i]<<" "; cout<<endl;}bool EmptyList (Sqlist *&L) ///判断线性表是否为空{ return L->length;}void ListLength(Sqlist *&L) ///线性表的长度{ cout<<"线性表的长度为:"; cout<<L->length<<endl;}void GetElem(Sqlist *&L,int n) ///查找线性表的某元素{ cout<<L->data[n-1]<<endl;}int LocateElem(Sqlist *&L,int n) ///元素的位置{ int i =0; while (L->data[i] !=n && i<L->length) i++; if (i > L->length) return 0; else cout<<i+1<<endl;}bool ListInsert(Sqlist *&L,int n,int w) ///插入元素{ int i,q; q = L->length; if ( w>0 && w<L->length+2) ///判断删除位置是否正确 while (q != w-1) { L->data[q] = L->data[q-1]; q--; } else { cout<<"您输入的范围不对。"<<endl; return false; } L->data[w-1] = n; L->length++;}bool ListDelete(Sqlist *&L,int i,int &e) ///删除线性表的某元素{ int j; if (i<1 || i>L->length) ///判断删除位置是否正确 return false; i--; e=L->data[i]; for (j=i; j<L->length-1; j++) L->data[j]=L->data[j+1]; L->length--; return true;}void InitList(Sqlist *&L) /// 初始化线性表{ L=(Sqlist *)malloc(sizeof(Sqlist));///为线性表开辟动态内存空间 L->length=0;}void DestroyList(Sqlist *&L) ///摧毁线性表{ free(L);}
运行结果:
知识点总结:第一次数据结构程序的实现,体验到程序中的代码有些相似性,有些代码可以重复使用,所以为了方便可以单独写再一个函数当中,之后只要i调用函数就可以了
阅读全文
0 0
- 第三周—项目2 建设“顺序表”算法库
- 第三周项目2建设顺序表算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周-项目2-建设“顺序表算法库”
- (第三周项目2)建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周 项目2-建设顺序表算法库
- 第三周项目2-建设顺序表算法库
- 第三周 项目2-建设“顺序表”算法库
- 第三周 项目2 建设“顺序表”算法库
- 第三周项目2--建设”顺序表“算法库
- 第三周项目2 建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周项目2 建设“顺序表”算法库
- 第三周 项目2 建设“顺序表”算法库
- 【学习摘记】马士兵bbs改良版_课时27-28_发表新主题:接受数据和处理数据写入同一个页面
- JAVA输出日历(整合代码)
- android实现文字渐变效果和歌词进度的效果
- WordPress版微信小程序2.2.8版发布
- Spark 启动 java.lang.ClassNotFoundException: parquet.hadoop.ParquetOutputCommitter
- 第三周 项目2-建设“顺序表”算法库
- JS中的event 对象详解
- 乐卓WarGod Z1定义手机多玩法
- 一步两步,学习大数据(三)——Hadoop集群安装
- 关于数据类型的一些知识
- Android 事件处理过程,读取事件线程,(2)
- bzoj 1024(DFS)
- BZOJ1237 配对 [DP]
- 随机抽样一致性(RANSAC)算法