第三周 项目2 — 建设“顺序表”算法库
来源:互联网 发布:手机mac地址会变吗 编辑:程序博客网 时间:2024/06/03 20:21
Copyright (c) 2015,烟台大学计算机学院
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年10月15日
list.h
01.#ifndef LIST_H_INCLUDED 02.#define LIST_H_INCLUDED 03. 04.#define MaxSize 50 05.typedef int ElemType; 06.typedef struct 07.{ 08. ElemType data[MaxSize]; 09. int length; 10.} SqList; 11.void CreateList(SqList *&L, ElemType a[], int n);//用数组创建线性表 12.void InitList(SqList *&L);//初始化线性表InitList(L) 13.void DestroyList(SqList *&L);//销毁线性表DestroyList(L) 14.bool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L) 15.int ListLength(SqList *L);//求线性表的长度ListLength(L) 16.void DispList(SqList *L);//输出线性表DispList(L) 17.bool GetElem(SqList *L,int i,ElemType &e);//求某个数据元素值GetElem(L,i,e) 18.int LocateElem(SqList *L, ElemType e);//按元素值查找LocateElem(L,e) 19.bool ListInsert(SqList *&L,int i,ElemType e);//插入数据元素ListInsert(L,i,e) 20.bool ListDelete(SqList *&L,int i,ElemType &e);//删除数据元素ListDelete(L,i,e)#endif // LIST_H_INCLUDED 21.#endif
list.cpp
[cpp] view plaincopyprint?01.#include <stdio.h> 02.#include <malloc.h> 03.#include "list.h" 04. 05.//用数组创建线性表 06.void CreateList(SqList *&L, ElemType a[], int n) 07.{ 08. int i; 09. L=(SqList *)malloc(sizeof(SqList)); 10. for (i=0; i<n; i++) 11. L->data[i]=a[i]; 12. L->length=n; 13.} 14. 15.//初始化线性表InitList(L) 16.void InitList(SqList *&L) //引用型指针 17.{ 18. L=(SqList *)malloc(sizeof(SqList)); 19. //分配存放线性表的空间 20. L->length=0; 21.} 22. 23.//销毁线性表DestroyList(L) 24.void DestroyList(SqList *&L) 25.{ 26. free(L); 27.} 28. 29.//判定是否为空表ListEmpty(L) 30.bool ListEmpty(SqList *L) 31.{ 32. return(L->length==0); 33.} 34. 35.//求线性表的长度ListLength(L) 36.int ListLength(SqList *L) 37.{ 38. return(L->length); 39.} 40. 41.//输出线性表DispList(L) 42.void DispList(SqList *L) 43.{ 44. int i; 45. if (ListEmpty(L)) return; 46. for (i=0; i<L->length; i++) 47. printf("%d ",L->data[i]); 48. printf("\n"); 49.} 50. 51.//求某个数据元素值GetElem(L,i,e) 52.bool GetElem(SqList *L,int i,ElemType &e) 53.{ 54. if (i<1 || i>L->length) return false; 55. e=L->data[i-1]; 56. return true; 57.} 58. 59.//按元素值查找LocateElem(L,e) 60.int LocateElem(SqList *L, ElemType e) 61.{ 62. int i=0; 63. while (i<L->length && L->data[i]!=e) i++; 64. if (i>=L->length) return 0; 65. else return i+1; 66.} 67. 68.//插入数据元素ListInsert(L,i,e) 69.bool ListInsert(SqList *&L,int i,ElemType e) 70.{ 71. int j; 72. if (i<1 || i>L->length+1) 73. return false; //参数错误时返回false 74. i--; //将顺序表逻辑序号转化为物理序号 75. for (j=L->length; j>i; j--) //将data[i..n]元素后移一个位置 76. L->data[j]=L->data[j-1]; 77. L->data[i]=e; //插入元素e 78. L->length++; //顺序表长度增1 79. return true; //成功插入返回true 80.} 81. 82.//删除数据元素ListDelete(L,i,e) 83.bool ListDelete(SqList *&L,int i,ElemType &e) 84.{ 85. int j; 86. if (i<1 || i>L->length) //参数错误时返回false 87. return false; 88. i--; //将顺序表逻辑序号转化为物理序号 89. e=L->data[i]; 90. for (j=i; j<L->length-1; j++) //将data[i..n-1]元素前移 91. L->data[j]=L->data[j+1]; 92. L->length--; //顺序表长度减1 93. return true; //成功删除返回true 94.}
main.cpp
01.#include "list.h" 02.int main() 03.{ 04. SqList *sq; 05. ElemType x[6]= {5,8,7,2,4,9}; 06. CreateList(sq, x, 6); 07. DispList(sq); 08. return 0; 09.}
0 0
- 第三周—项目2 建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周 项目2 — 建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周项目2—建设“顺序表”算法库
- 第三周项目2建设顺序表算法库
- 第三周项目2-建设“顺序表”算法库
- 第三周-项目2-建设“顺序表算法库”
- (第三周项目2)建设“顺序表”算法库
- 第三周 项目2-建设顺序表算法库
- 第三周项目2-建设顺序表算法库
- 第三周 项目2-建设“顺序表”算法库
- 第三周 项目2 建设“顺序表”算法库
- 第三周项目2--建设”顺序表“算法库
- 阶段性项目练习任务说明
- 黑马程序员——异常
- 空间统计---度量地理分布工具集,Measuring Geographic Distributions
- 第4周项目4 建设双链表算法库
- 第六周项目2-建立链栈算法库
- 第三周 项目2 — 建设“顺序表”算法库
- camera摄像原理之一:光感应
- 空间统计--空间关系建模工具集,Modeling Spatial Relationships
- 第四周项目4—建设双链表算法库
- 空间统计--Mapping Clusters&Utility工具集
- 软件工程(六)——软件测试
- 第7周 项目5-排队看病模拟
- 项目5 排队看病模拟
- 分布式系统的事务处理