- 博客(11)
- 收藏
- 关注
原创 c++二叉树的实现
前序 : 先从根节点的左子树开始往下遍历 在左子树节点中 的左节点开始 如果为空 则遍历右子树右子树为空则返回 到上一个子树节点 遍历它的 右子树。二叉树这种数据结构中必须有一个根节点,然后由这个根节点再往下延伸两个节点,在逻辑上是左子树和右子树 在由左右子树开始往下伸展各个节点。遍历顺序为 :1->2->4->8->9->5->10->11->3->6->12->13->7->14->15。这样的树型结构遍历分前序 中序 后序 遍历方式 遍历均为 递归方式。
2024-03-18 09:52:45
409
原创 c++的位移运算
无论这两个数是几都会被前边都会被消掉与最后的1进行判断如果是偶数1会被消掉变成0。首先利用c++产生随机数 然后给定一个数组利用循环遍历赋值最后一个是随机数。然后再将随机数给到数组中随机分配最后随机分配打印输出。利用两数相消原理a=a^b 在^a则b变成了b=a。两个相同的数会消掉 可以在相同的数中找不同的数。& 在运算中是是全为1才为1否则为0。利用这个在二进制中与1进行运算。【2】 & 在位移中的操作。如果是奇数1会被保留变成1。然后a再^b则是 a=b。利用按位与 判断奇偶性。
2024-03-15 09:57:53
280
1
原创 c++顺序表的定义与实现
1.c++的顺序表的定义依靠于数组数组在内存中是连续的一片内存因此顺序表的数据都是前后相连的顺序表与链表的最大区别在于指针指针在内存中开辟一片连续的空间给到链表因此链表的内存中的数据有不连续性。插入部分需要将顺序表的实例化对象,插入位置,插入元素 这三个引入到插入操作中首先判断表长如果表长<1则是空表直接返回。如果既不表满也不空表则可以进行插入操作插入则是将所有的元素都后移一位将插入的元素插入到顺序表中。通常初始化的时候一般都是初始化表长表中的元素都是通过插入操作来将所需要的东西给添加到表中。
2024-03-15 09:18:53
296
1
原创 链表c++版的定义与实现
2.链表的类的实现 首先就是链表的构造函数 析构函数的使用别再链表的对象实例化过程中起到数据的初始化以及数据的删除 接着就是类内的头结点和size表长的使用这部分由于是在类内是实现所以访问权限为protected。删除操作则是将链表的节点中的数据域和要删除的数进行比较若有进行删除的数则将这个节点的前一个节点指向后一个节点 按值删除和按下标删除是类似的。首先是链表的的结构体定义。1.链表的定义就好像是一串灯笼,有头结点,有一个个结点来进行,数据的存储,遍历和删除。核心部分弄完后就该弄链表的一些操作。
2024-02-21 16:30:38
372
1
原创 vector容器的创建以及遍历
5.容器适配器:一些容器底层和数据操作具有一定的相似,所以一些容器使用其他容器作为底层数据结构, 将其他容器的函数转换为自己的函数;vector 可以认为是一个写好顺序表的模板,可以更快捷的插入元素删除以及遍历,STL主要由六大部分构成。4.迭代器:算法既然要操作容器中的数据,需要有工具访问容器中数据,那就是迭代器,是一种泛化的指针;6.仿函数:实际上是类中的operator()小括号运算符重载函数,存在类似函数的行为。3.算法:被独立出来的模板函数,用来操作容器,包括常见的排序算法、查找算法等;
2024-02-08 21:38:41
497
原创 普通函数和函数模板的调用规则
/1.如果函数模板和普通函数都可以调用,优先调用普通函数。//4.如果函数模板可以产生更好的匹配,优先调用函数模板。//2.可以通过空模板参数列表 强制调用 函数模板。//3.函数模板可以发生重载。
2024-02-04 21:40:21
234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人