![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言数据结构
西洲凉梦
恩,菜鸟一枚。
展开
-
动态创建内存
malloc 、calloc和realloc的用法1、malloc是动态内存最基本的用法一般形式为:int *p=(int*)malloc(n*sizeof(int));2、realloc是扩大申请的内存int *p=(int*)realloc(p,n*sizeof(int));其中n 为申请的内存新的大小//reallocint main(){ int *p...原创 2018-07-25 22:12:23 · 231 阅读 · 0 评论 -
顺序表的基本操作
相关定义线性表的顺序表是指用一组地址连续的存储单元依次存储线性表的数据元素。顺序表的特点:1)逻辑地址相邻,物理地址也相邻。 2)结构简单、支持随机访问,查找方便。顺序表的缺点:插入删除较慢。顺序表与数组的区别:数组只支持数据的存取,顺序表可以进行数据的存取、插入和删除。数据结构的定义typedef struct ...原创 2019-07-29 22:53:25 · 281 阅读 · 0 评论 -
字符串替换问题——“一个换一个”
问题描述 函数将字符串中的字符'*'移到字符串的前部分,前面的非'*'符后移,但不能改变非'*'字符的先后顺序,函数返回串中非'*'字符的数量。(要求尽可能的占用少的时间和辅助空间)。例:原始串为au**toc**h**i*ps,处理后为*******autochips,函数返回9.解题思路1、首先最直接的办法是重新申请一个和原始串同样大小长度的空间,然后再从头遍历两...原创 2019-08-19 23:40:01 · 733 阅读 · 0 评论 -
字符串替换问题——“一个换多个”
问题描述将字符串中的空格替换成“% 2 0”问题分析(1)该问题最简单的解决办法是重新申请一个新的字符串数组,遍历原字符串数组。若是非空格就直接拷贝到新数组,若是空格就直接在新数组中加入“2”,“0”,“%”三个字符。最后遍历结束,将新字符串拷贝给就字符串,释放新申请的字符串的内存空间。但该方法的空间复杂度比较高,因此可能在一定的条件下不太适合。(2)在原字符串数组上进行操作,因为...原创 2019-08-20 16:01:00 · 336 阅读 · 0 评论 -
字符串的逆置(非递归实现)
实现方法 定义两个指针,一个指向字符串起始位置,一个指向末尾。然后进行交换,每进行一次交换后,起始指针加加,末尾指针减减直到不符合p1<p2的情况。//字符串逆置void ReStr(char *str)//字符串逆置{ char *p1 = str; char *p2 = str + strlen(str) - 1; while (p1 < p2) { ...原创 2019-08-20 16:49:12 · 203 阅读 · 0 评论