- 博客(26)
- 收藏
- 关注
原创 string类的实现
string类构造函数的实现1.构造函数的实现使用**“”**空字符串作为缺省参数,常量字符串末尾有‘\0’,当不传参时,_str只存着一个‘\0’拷贝构造函数的实现这里的tmp变量属于局部变量,当拷贝构造函数调用完以后栈帧会销毁,tmp变量也会跟着销毁了。注意:同一个类域中,类的成员变量可以相互访问string类c_str函数实现返回字符串指针(该字符串的首地址)string类size函数的实现_size为私有成员变量,在类域外需要通过函数才能调用进行间接访问string类cap
2023-10-02 15:04:48 913 1
原创 【数据结构】二叉树的概念及堆的实现(上)
现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。建大堆的话,我们就可以排升序,为什么可以这样排呢,因为此时堆顶的元素为最大的元素,我们只需要将堆顶的元素跟堆中的最后一个元素交换,然后再用向下调整法就可以选出次大的数,然后再换,一次类推,最后数组中的数就变为升序了。删除堆是删除堆顶的数据,将堆顶的数据跟最后一个数据一换,然后删除数组最后一个数据,再进行向下调整算法。
2023-04-03 22:09:18 77 4
原创 【数据结构】队列的实现及循环队列的实现详解(c语言)
通过下图可以看到定义了两个结构体,第一个结构就是我们常用的节点,而第二结构体中的成员可以理解为head指针是用来指向队头的tail指针是用来指向队尾的size用来反应队列中的元素个数,看到这肯定会有一些疑问,为什么要这样定义呢,这样定义的好处是什么1.这样定义的好处上文我们说了实现队列要用尾插头删来实现当入队的时候尾插需要找到队列的尾,这样就需要把队列遍历一遍,此时入队列的时间复杂度为O(n)而我们使用tail指针指向尾,在尾插的时候就可以不用再遍历队列了,这时入队列的时。
2023-03-25 17:22:45 2330 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人