第三周项目1-顺序表的基本运算(1)
来源:互联网 发布:mac图片浏览器 编辑:程序博客网 时间:2024/05/16 09:40
问题及代码:
测试“建立线性表”,的算法CreateList,实现“输出线性表”的算法DispList,和判断线性表是否为空的算法ListEmpty,再加上main函数,整个程序代码如下:
#include <stdio.h>#include <malloc.h>#define MaxSize 50 //Maxsize将用于后面定义存储空间的大小typedef int ElemType; //ElemType在不同场合可以根据问题的需要确定,在此取简单的inttypedef struct{ ElemType data[MaxSize]; //利用了前面MaxSize和ElemType的定义 int length;} SqList;//自定义函数声明部分void CreateList(SqList *&L, ElemType a[], int n);//用数组创建线性表void DispList(SqList *L);//输出线性表DispList(L)bool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L)//实现测试函数int main(){ SqList *sq; ElemType x[6]= {5,8,7,2,4,9}; CreateList(sq, x, 6); DispList(sq); return 0;}//下面实现要测试的各个自定义函数//用数组创建线性表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;}//输出线性表DispList(L)void DispList(SqList *L){ int i; if (ListEmpty(L)) return; for (i=0; i<L->length; i++) printf("%d ",L->data[i]); printf("\n");}//判定是否为空表ListEmpty(L)bool ListEmpty(SqList *L){ return(L->length==0);}
运行结果:
知识点总结:
这个程序中包含多种算法,CreateList-建立线性表,在这个算法中有一个对我来说比较陌生的词“malloc”(malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。--百度百科),然后是一个循环结构来赋值。
DispList--输出线性表,用一个循环输出线性表中的数据,在此之前要先判断该线性表是否为空,所以还需要ListEmpty来判断是否为空,定义为布尔型函数。
学习心得:
在以前学习C++的时候就觉得链表是比较难的,在接触线性表时确实有点头痛,但只要努力,我相信会学好这部分的知识的。
0 0
- 第三周项目(1):顺序表的基本运算
- (第三周项目1)顺序表的基本运算
- 第三周项目(1)-顺序表的基本运算
- 第三周项目1-顺序表的基本运算
- 第三周实践项目1-顺序表的基本运算
- 第三周—项目1 顺序表的基本运算
- 第三周 项目1 - 顺序表的基本运算
- 第三周项目1顺序表的基本运算
- 第三周 项目1-顺序表的基本运算
- 第三周项目1 顺序表的基本运算
- 第三周 项目1-顺序表的基本运算
- 第三周项目1-顺序表的基本运算
- 第三周项目1-顺序表的基本运算
- 第三周项目1 顺序表的基本运算(2)
- 第三周【项目1 - 顺序表的基本运算】
- 第三周 项目1-顺序表的基本运算
- 第三周项目1顺序表的基本运算2
- 第三周项目1-顺序表的基本运算
- C++Primer第五版 4.3节练习
- 发布有礼!2015 Autodesk程序商店有奖发布活动拉开序幕
- ./demoCA/newcerts: No such file or directory
- python3 编码问题
- 3.仿微信--注册界面 补充用到的类
- 第三周项目1-顺序表的基本运算(1)
- C/C++程序员面试宝典-2
- 项目0-宣示主权
- MAC地址批量生成器
- 项目1-顺序表的基本算法
- 第2周时间项目3-体验复杂度(2)汉诺塔
- MarkDown学习
- 第三周项目(2):顺序表的基本运算
- shell