第三周项目三—求集合并集
来源:互联网 发布:java spring mvc 框架 编辑:程序博客网 时间:2024/05/16 11:56
Copyright (c) 2015,烟台大学计算机学院
All rights reserved,
文件名称:idea.cpp
作者:王阳
完成日期:2015年9月18日
liat.h
01.#define MaxSize 50 02.typedef int ElemType; 03.typedef struct 04.{ 05. ElemType data[MaxSize]; 06. int length; 07.} SqList; 08.void CreateList(SqList *&L, ElemType a[], int n);//用数组创建线性表 09.void InitList(SqList *&L);//初始化线性表InitList(L) 10.void DestroyList(SqList *&L);//销毁线性表DestroyList(L) 11.bool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L) 12.int ListLength(SqList *L);//求线性表的长度ListLength(L) 13.void DispList(SqList *L);//输出线性表DispList(L) 14.bool GetElem(SqList *L,int i,ElemType &e);//求某个数据元素值GetElem(L,i,e) 15.int LocateElem(SqList *L, ElemType e);//按元素值查找LocateElem(L,e) 16.bool ListInsert(SqList *&L,int i,ElemType e);//插入数据元素ListInsert(L,i,e) 17.bool ListDelete(SqList *&L,int i,ElemType &e);//删除数据元素ListDelete(L,i,e)#endif // LIST_H_INCLUDED #define MaxSize 50typedef int ElemType;typedef struct{ ElemType data[MaxSize]; int length;} SqList;void CreateList(SqList *&L, ElemType a[], int n);//用数组创建线性表void InitList(SqList *&L);//初始化线性表InitList(L)void DestroyList(SqList *&L);//销毁线性表DestroyList(L)bool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L)int ListLength(SqList *L);//求线性表的长度ListLength(L)void DispList(SqList *L);//输出线性表DispList(L)bool GetElem(SqList *L,int i,ElemType &e);//求某个数据元素值GetElem(L,i,e)int LocateElem(SqList *L, ElemType e);//按元素值查找LocateElem(L,e)bool ListInsert(SqList *&L,int i,ElemType e);//插入数据元素ListInsert(L,i,e)bool ListDelete(SqList *&L,int i,ElemType &e);//删除数据元素ListDelete(L,i,e)#endif // LIST_H_INCLUDED
list.cpp
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
[cpp] view plaincopyprint?01.#include "list.h" 02.#include <stdio.h> 03. 04.void unionList(SqList *LA, SqList *LB, SqList *&LC) 05.{ 06. int lena,i; 07. ElemType e; 08. InitList(LC); 09. for (i=1; i<=ListLength(LA); i++) //将LA的所有元素插入到Lc中 10. { 11. GetElem(LA,i,e); 12. ListInsert(LC,i,e); 13. } 14. lena=ListLength(LA); //求线性表LA的长度 15. for (i=1; i<=ListLength(LB); i++) 16. { 17. GetElem(LB,i,e); //取LB中第i个数据元素赋给e 18. if (!LocateElem(LA,e)) //LA中不存在和e相同者,插入到LC中 19. ListInsert(LC,++lena,e); 20. } 21.} 22. 23.//用main写测试代码 24.int main() 25.{ 26. SqList *sq_a, *sq_b, *sq_c; 27. ElemType a[6]= {5,8,7,2,4,9}; 28. CreateList(sq_a, a, 6); 29. printf("LA: "); 30. DispList(sq_a); 31. 32. ElemType b[6]= {2,3,8,6,0}; 33. CreateList(sq_b, b, 5); 34. printf("LB: "); 35. DispList(sq_b); 36. unionList(sq_a, sq_b, sq_c); 37. printf("LC: "); 38. DispList(sq_c); 39. return 0; 40.}
0 0
- 第三周 项目三——求集合并集
- 第三周项目三—求集合并集
- 第三周项目三—求集合并集
- 第三周 项目三—求及集合并集
- 第三周项目三求集合并集
- 第三周 项目三--求集合并集
- 第三周项目三 求集合并集
- 第三周项目三 求集合并集
- 第三周 项目三 求集合并集。
- 第三周 项目三-【求集合并集】
- 第三周项目三 求集合并集
- 第三周项目三--求集合并集
- 第三周 项目三-求集合并集
- 第三周【项目三-求集合并集】
- 第三周项目三 求集合并集
- 第三周项目三 求集合并集
- 第三周项目三-求集合并集
- 第三周-项目三求集合并集
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
- SQL Server中存储过程中使用IN遇到的问题
- 几个疑惑的问题
- 【jQuery】3.jquery选择器
- 括号的匹配
- 第三周项目三—求集合并集
- 学生成绩管理系统
- 【第6周 项目5 - 后缀表达式】
- 第六周 后缀表达式
- 第7周 项目4-队列数组
- 第六周项目2--建立链栈算法库
- 创建表空间
- Splay伸展树
- 第六周项目3-括号的匹配