第三周 项目2-建设“顺序表”算法库
2017-09-19 17:01
381 查看
list.h 代码:
main.cpp 代码:
list.cpp 代码:
运行结果:
知识点总结:第一次数据结构程序的实现,体验到程序中的代码有些相似性,有些代码可以重复使用,所以为了方便可以单独写再一个函数当中,之后只要i调用函数就可以了
/* *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 50 typedef 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调用函数就可以了
相关文章推荐
- 第三周项目2-建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 【第三周项目2】 建设“顺序表”算法库
- 第三周 项目2 - 建设“顺序表”算法库
- 第三周项目二—建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周——项目2建设“顺序表”算法库
- 第三周上机实践—项目2 —建设“顺序表”算法库
- 第三周项目2 建设“顺序表”算法库
- 第三周项目2---建设“顺序表”算法库
- 第三周-项目2 - 建设“顺序表”算法库
- 第三周项目2--建设”顺序表“算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周-项目2 - 建设“顺序表”算法库
- 第三周项目2 建设 顺序表 算法库
- 第三周项目2 - 建设“顺序表”算法库
- 第三周 项目2 - 建设“顺序表”算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周 【项目2 - 建设“顺序表”算法库】