
数据结构学习
2021/8/03开始学习
songyitian4
这个作者很懒,什么都没留下…
展开
-
关于斐波那契递归算法的不成熟思考
引子 算法课这学期刚刚开始上,今天就讲到了斐波那契的递归算法。老师讲的内容给了我一些启发:递归算法能否进行简化,从而让算法的运行效率更高? 这种思考来源于一张ppt: 可以看到f(5)=f(4)+f(3) 然后来能改变都要进行递归,但实际上f(4)调用的递归中包含f(3)的结果。 那么我们能不能将后一项去掉,再通过增加一个定位,使其f(n-1)中获得f(n-2)的值,不需要进行第二次f(n-2)的调用。从而得到最终的结果? 通过增加一个定位,使其f(n-1)中获得f(n-2)的值,不需要进行第二原创 2022-03-02 19:49:21 · 99 阅读 · 0 评论 -
线性表——顺序存储结构实现字符串类型(四)实现顺序表的合并
目录merge合并main其他部分代码思考 merge合并 /* **m是一个空表,将表a,表b,都赋给表m * 按照从小到大的顺序 */ void merge(string* m,string* a,string* b){ (*m).length=(*a).length+(*b).length; //更新m表长 (*m).size=(*a).size+(*b).size; //更新m表size (*m).data=(elemT原创 2021-08-07 10:44:28 · 453 阅读 · 0 评论 -
线性表——顺序存储结构实现字符串类型(三)实现删除操作
思考 顺序存储结构的线性表的删除操作和插入有些类似,只是覆盖方向不一样,删除是向内收缩,插入是向外扩张。 根据插入算法,我自己实现了一个删除算法 起初确实很难下手,想着先通过循环读取到序号在i的元素,但是写着写着发现这样有点蠢,因为这是一个顺序存储结构的线性表,我完全可以通过下表法来访问序号为i的元素,通过判断它是否为空来确定它的存在。 于是我设计了两个指针: elemType* c=&((*s).data[i-1]);//访问序号为i的元素 elemType* p=&((*s).data[原创 2021-08-05 17:00:20 · 416 阅读 · 0 评论 -
add方法重新铸造
why 在调试程序的时候,发现在表未添加元素不能满足自动增加size的工能,于是按照insert方法那个重新分配空间的思路讲方法进一步优化,通过测试。 void add(string* s,elemType e){ //空间不够,则重新分配空间 if(s->length>=s->size){ elemType* newbase=(elemType*)realloc((*s).data,sizeof(elemType)*(s->size+extensio原创 2021-08-05 11:26:20 · 138 阅读 · 0 评论 -
数据结构C语言:线性表——顺序存储结构实现字符串类型(二)插入算法
fflush(stdin)清空输入缓冲区 解决scanf输入字符、连接输入相关问题。 插入算法 /* * 将元素e插入到线性表s第i个的位置上 * 正常插入位置:<1,length+1> */ void insert(string* s,elemType e,int i){ int size=(*s).size; int length=(*s).length; if(i>length+1||i<1){ //非法插入:大于表长+1,小于1原创 2021-08-05 11:07:06 · 1222 阅读 · 0 评论 -
数据结构C语言:线性表——顺序存储结构实现字符串类型(一)
定义结构体 #define elemType char /* ** 定义一个实现顺序存储结构的字符串类型的线性表 */ typedef struct string{ elemType * data;// int size; int length; }string; 定义初始化操作 string newString(int size){ string s; s.data=(elemType*)malloc(sizeof(elemType)*size); if(原创 2021-08-03 17:51:57 · 1240 阅读 · 0 评论 -
数据结构学习预热-----指针
回顾 还记得c语言第一节课,老师说:c语言是什么?c语言其实就是指针。指针是什么?指针其实就是地址。学好了指针你就学会了C语言。 指针 指针,它首先是一个数据类型,能够定义指针变量;其次,他可以存储地址数据。类比int型,他可以定义整型数据,存储int型数据。 如何定义:? type* 变量名;//int* a; 如何引用指针变量:? int a=3; int *p; p=&a;//给指针变量赋值,此时p指向变量a printf("访问指针变量指向的变量a的值%d",*p); 第一个点:数原创 2021-08-03 16:12:01 · 131 阅读 · 0 评论