- 博客(15)
- 收藏
- 关注
原创 c++智能指针
我们在编写c++程序时经常会面临内存泄漏的问题,例如在这个简单的函数中,我们申请了一块内存,但是因为抛出异常跳出函数执行catch函数,导致new出来的内存没有释放掉。但是如果我们使用智能指针就可以避免这种问题。我们先来看一下c++98中的auto_ptr(源码简化版)封装一个类里面存放指针,在离开函数作用域的时候自动调用析构函数,这样就可以防止内存泄漏。同时为了防止拷贝构造时一块空间被多个对象使用而造成程序崩溃,将当前对象的指针指向空。...
2022-07-17 16:36:17 378 1
原创 单链表创建·c语言版
我们先简单看一下链表的结构,其实只有两个东西:一个节点和一个链接。在c语言学习过指针后,我们都知道指针可以存放地址,所以我们用一个指针保存下一个节点的地址作为链接。再来看一下链表和顺序表的对比1.顺序表在使用前要先知道数据的大小,或者开辟额外足够大的空间。链表克服了顺序表需要提前开辟空间的缺点,充分利用计算机的内存空间。2.顺序表支持通过下标进行随机访问,而链表失去了这个优点,在寻找节点是只能遍历寻找。3.顺序表在进.
2021-12-02 15:33:57 1441 5
原创 链式二叉树的前序创建,三种遍历· c语言版
相信大多数学过链表的人对链式二叉树的初始化和销毁都不会感到有什么难度,所以我们更应该关注二叉树的一些特性和它的三种遍历,通过对二叉树的学习我们可以很好地练习递归的使用。大家可以先看一下二叉树的基本特性和结构特点#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef int BTDataType;typedef struct BinaryTreeNode{ BTDataType _da
2021-11-25 12:18:30 976 15
原创 顺序表创建·c语言版
提到顺序表很多人都会想起数组,但真正的顺序表真的只是一个数组那么简单吗?再写一个顺序表前,我们需要想三个问题:1:如何在插入数据时就调整好数字的顺序2:如何更新数组对的大小3:数组如何进行扩容考虑到上面的因素我们知道单靠一个数组是不够的,我们需要一个size记录数组的当前大小,一个capicity记录最大容量...
2021-11-14 14:53:14 1134 1
原创 栈的创建·c语言版
创建一个栈之前,我们需要先想好栈的特点以及栈如何去使用更加方便。栈可以用顺序表或者链表的方式来实现,我们考虑一下顺序表和链表在创建栈时分别会有什么优缺点。链栈按需申请空间,不会造成空间浪费,需要存储一个指针消耗一定空间。顺序栈无法按需申请空间,可能会造成空间浪费,但只需存储数据,并且空间连续,空间利用率高。 由于顺序栈和链栈的插入和删除操作时间复杂度都是O(1),所以如果所栈元素的数目会在使用过程中发生较大的改变,我们一般使用链栈,而倘如我们栈的元素数目是固定不变的,则...
2021-11-08 17:06:36 4471 7
原创 c语言,Easyx实现贪吃蛇
一、头文件包含 #include<stdio.h> #include<graphics.h>//图形处理需要包含的库文件 #include<mmsystem.h> #include<conio.h> #include<time.h> #include<stdlib.h>...
2021-10-10 17:27:04 2575 7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人