做网站用的软件,网红营销是什么意思,wordpress 不在首页显示文章,今天广西紧急通知最新数据结构学习笔记#xff08;一#xff09;
假期以来我都坚持每天看一点郝斌的数据结构视频。讲的很透彻#xff0c;也很风趣。
前几天都是为讲数据结构而做准备#xff0c;讲了一些结构体和指针#xff0c;今天终于开始正式将数据结构。说实话#xff0c;我今天才知道…数据结构学习笔记一
假期以来我都坚持每天看一点郝斌的数据结构视频。讲的很透彻也很风趣。
前几天都是为讲数据结构而做准备讲了一些结构体和指针今天终于开始正式将数据结构。说实话我今天才知道函数的用处。。
照着郝斌讲连续存储数组的算法演示又自己写了一遍发现有一个错误左看右看都看不出哪错了索性贴出了有兴趣的朋友可以看看
百度求助一位牛人看出错误来谢谢了重新贴出正确的代码 [cpp] view plaincopy #include stdio.h #include malloc.h #include stdlib.h // 包含exit int val,i,t; struct Arr { int * pBase; //储存的是数组第一个元素的地址 int len; //数组所能容纳的最大元素个数 int cnt; //当前数组有效个数 }; void init_arr(struct Arr * pArr,int length); //初始化 bool append_arr(struct Arr * pArr,int val); bool insert_arr(struct Arr * pArr,int pos,int val); //pos的值从1开始 bool delete_arr(struct Arr * pArr,int pos,int *pVal); int get(); bool is_empty(struct Arr * pArr); bool is_full(struct Arr * pArr); void sort_arr(struct Arr * pArr); void show_arr(struct Arr * pArr); void inversion_arr(struct Arr * pArr); //倒置 int main() { struct Arr arr; init_arr(arr,6); show_arr(arr); append_arr(arr,1); append_arr(arr,2); append_arr(arr,3); append_arr(arr,4); delete_arr(arr,1,val); return 0; } void init_arr(struct Arr * pArr,int length) { pArr-pBase (int *)malloc(sizeof(int) * length); if (NULL pArr-pBase) { printf(动态内存分配失败\n); exit(-1); //终止整个程序 } else { pArr-len length; pArr-cnt 0; } return; } bool is_empty(struct Arr * pArr) { if(0 pArr-cnt) return true; else return false; } bool is_full(struct Arr * pArr) { if(pArr-cnt pArr-len) return true; else return false; } void show_arr(struct Arr * pArr) { if( is_empty(pArr) ) //pArr本来就是地址 { printf(数组为空\n); } else { for(int i0;ipArr-cnt;i) printf(%d ,pArr-pBase[i]); printf(\n); } } bool append_arr(struct Arr * pArr,int val) { if( is_full(pArr) ) return false; else pArr-pBase[pArr-cnt] val; (pArr-cnt); return true; } bool insert_arr(struct Arr * pArr,int pos,int val) { int i; if(pos1||pospArr-len) for (ipArr-cnt-1;ipos-1;--i) { pArr-pBase[i1] pArr-pBase[i]; } pArr-pBase[pos-1] val; return true; } bool delete_arr(struct Arr * pArr,int pos,int *pVal) { if ( is_empty(pArr) ) return false; if (pos1|| pospArr-cnt) return false; *pVal pArr-pBase[pos-1]; for(ipos; ipArr-cnt;i) { pArr-pBase[i-1] pArr-pBase[i]; } pArr-cnt--; return true; } void inversion_arr(struct Arr * pArr) { int i 0; int j pArr-cnt-1; int t; while (ij) { t pArr-pBase[i]; pArr-pBase[i] pArr-pBase[j]; pArr-pBase[j] t; i; j--; } return; } void sort_arr(struct Arr * pArr) { int i,j; //冒泡法 for(i0;ipArr-cnt;i) { for(ji1;jpArr-cnt;i) { if(pArr-pBase[i] pArr-pBase[j]) { t pArr-pBase[i]; pArr-pBase[i] pArr-pBase[j]; pArr-pBase[j] t; } } } }