第三周——项目一—顺序表的基本运算(3)
来源:互联网 发布:sql count 用法 编辑:程序博客网 时间:2024/06/07 00:02
/*烟台大学计算机与控制工程学院文件名称:lk作者:尹娜完成日期:2017年9月18日问题描述:初始化线性表InitList和插入数据元素ListInsert两个算法输入描述:无需输入程序输出:插入到线性表中的元素*/#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 DispList(SqList *L) ; //输出线性表DispList(L)void InitList(SqList *&L); //初始化线性表InitListvoid DestroyList(SqList *&L); //销毁线性表DestroyListbool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L)bool ListInsert(SqList *&L,int i,ElemType e); //插入数据元素ListInsertbool ListDelete(SqList *&L,int i,ElemType &e); //删除数据元素ListDelete//实现测试函数int main(){ SqList *sq; InitList(sq); ListInsert(sq, 1, 5); ListInsert(sq, 2, 3); ListInsert(sq, 1, 4); DispList(sq); return 0;}//下面实现要测试的各个自定义函数//初始化线性表InitListvoid InitList(SqList *&L){ L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 L->length=0; //置空线性表的长度为0}//销毁线性表DestroyListvoid DestroyList(SqList *&L){ free(L); //释放L所指的线性表空间}//插入数据元素ListInsertbool ListInsert(SqList *&L,int i,ElemType e){ int j; if(i<1||i>L->length+1) return false; //参数i错误时返回false i--; //将顺序表的逻辑序号转化为物理序号 for(j=L->length;j>i;j--) //将的date[i]及后面的元素后移一个位置 L->data[j]=L->data[j-1]; L->data[i]=e; //插入元素e L->length++; //顺序表长度加1 return true; //成功插入返回true}//删除数据元素ListDeletebool ListDelete(SqList *&L,int i,ElemType &e){ int j; if(i<1||i>L->length) return false; //参数i错误时返回false i--; //将顺序表的逻辑序号转化为物理序号 e=L->data[i]; for(j=i;j<L->length-1;j++) //将的date[i]及后面的元素前移一个位置 L->data[j]=L->data[j+1]; L->length--; //顺序表长度减1 return true; //成功删除返回true}//输出线性表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);}
知识总结:将一些基本算法集合到一起,去实现相应的功能。
学习心得:在学习理解了一些基本算法后,通过动手操作,进一步的加深了对基本算法的理解。
阅读全文
0 0
- 第三周——项目一—顺序表的基本运算(3)
- 第三周项目一(3)—顺序表的基本运算
- 第三周——项目一—顺序表的基本运算(1)
- 第三周——项目一—顺序表的基本运算(2)
- 第三周 项目一——顺序表的基本运算(1)
- 第三周 项目一——顺序表的基本运算(2)
- 第三周 项目一——顺序表的基本运算(1)
- 第三周 项目一——顺序表的基本运算(2)
- 第三周项目一(1)—顺序表的基本运算
- 第三周项目一(2)—顺序表的基本运算
- 第三周 项目一-顺序表的基本运算(3)
- 第三周—项目1 顺序表的基本运算
- 第三周项目1—顺序表的基本运算
- 第三周—项目1顺序表的基本运算
- 第三周项目1—顺序表的基本运算
- 第三周项目1—顺序表的基本运算
- 第三周项目1—顺序表的基本运算
- 第三周—项目1-顺序表的基本运算
- java.lang.NullPointerException: Attempt to invoke virtual method 'void com.moreunion.zhenghao.ui.wi
- Leetcode 171 Excel Sheet Column Number
- Arraylist集合的使用
- RecyclerVieW自定义华丽的分割线
- 批量生产删除ASM物理文件的脚本
- 第三周——项目一—顺序表的基本运算(3)
- CXTPRibbonBar添加系统菜单时候,会出现白条
- License Key Formatting 问题及解法
- Leetcode 242 Valid Anagram
- Training Neural Networks with Very Little Data -- A Draft径向变换
- Leetcode 400 Nth Digit
- USB充电,标准充电器,非标准充电器的区别
- Leetcode 441 Arranging Coins
- 如何将拷贝过来的代码实现高亮