简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Hello,各位大佬好,今天我们来讲讲C++中的最后一位 " 刺客 " :多态。
继承机制是面向对象程序设计使得代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称之为是派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触到的是函数层次的复用,而我们这里的继承是类设计层次的复用,我们接下来通过一段代码来说明一下这个继承知识的意义(原因):(我们这里写一个老师和学生的
但是不要紧,今天我来给大家慢慢的分析一下这道题目,这道题的意思其实就是说,设计一个循环队列,这个循环队列的空间是固定的(这里以4个空间为例展开讲解),我们每向我们设计的队列中插入一个元素,那么队列中对应的空间就会少一个,当这个队列中的空间全部都装满的时候,此时,我们就无法向这个队列中再去插入元素了,唯一的方法就是删除掉队列中的第一个元素,将新的元素插入到此队列中的第一个位置即可,再插入一个元素,再
这道题在刚开始解答的时候,大家在尝试做这道题的时候,会感觉到无从下手,那么,在这里,我来给大家讲一下具体的方法:先定义两个指针(fast和slow),再定义一个cur指针让其指向head指针,让它们两个和上一题一样fast指针一次走2步,slow指针一次走1步,找到它们两个相遇的那个点,定义一个meet指针,让其指向slow和fast指针相遇的地方,然后meet一次走1步,cur指针一次走1步,若
if ((*pphead)->next == NULL)//除了单链表为空这种情况以外,还有一种情况需要我们考虑一下,就是单链表中有几个节点,如果单链表中只有一个节点,那么最后一个节点就是第一个节点,将最后一个节点的空间释放掉之后,相应的头指针就会变成一个野指针,有一定的风险,因此,这种情况下,要将头指针置为NULL,反之,如果单链表中的节点在两个及其以上的化,就不需要将头指针置空。//因为是要删
(1).class为定义类的关键字,后面紧跟这个类的名字,{ }中为类的主体,注意类定义结束时后面的分号不能省略掉。类中的内容称为类的成员:类中的变量称为类的属性或成员变量,类中的函数称为是类的方法或者成员函数。(C++规定:类的名字就是类的类型)class date//date是类的名字int a;int b;int c;//a,b,c是类的成员变量void print(int x,int y)
OK,各位未来的高级程序员们,大家好,今天我们来讲解一下二叉树这个部分的第二种存储结构---------链式存储结构,相信大家对这部分内容已经很期待了,但是,这里我们在开讲之前,要先补充一个知识,这个知识本应该是出现在前面一篇博客的内容,之前由于种种原因,就没有写上,那么,现在在这里给大家补上,请谅解。补充:TOP-K问题:N个数中找最大的前K个。方法1:建立一个N个数的大堆,空间复杂度:O(N)
通过上述讲解,我们知道了_top指向的是栈顶元素的下一个位置,大家可以通过我们自己的聪明的大脑想一想,_top的值是不是就是栈中有效的元素个数,没错,是的,因为_top他指向的是栈顶元素的下一个位置,并且数组中的第一个元素的下标是由0开始的,如果说到这里大家还是不太了解的话,请看下面的这幅图,大家也可以自己尝试的去画一画图,画完之后应该就理解了。否则,数组空间是固定的,存放的元素是固定的,那么这个
/在写之前,我们先来讲解一下思路:当我们向头部插入元素的时候,不仅要让元素成功的插入到数组中,还要保证数组中原来的元素不会丢失,因此,我们要将原数组的元素统一向后面移动一位再将要插入的元素插入到头部位置就可以了(这里有一个点需要我们大家注意一下,就是我们在进行向后移动的时候,要从后面开始,往前进行循环移动元素操作)。//在进行尾插操作之前还要先看一下数组中的空间够不够,如果不够,则需要再重新扩充空
由上图我们可知,双向链表是有一个头节点的(也叫哨兵位),这个头节点在双向链表中起到的就是头指针的作用,双向链表是一种循环链表,是双向可循环的一种链表,哨兵位在这里虽然它是存在在双线链表当中的,但是在这里我们不会去访问它的,也就是说,他在这里只是起到一个头指针的作用。我们在讲实现的的步骤之前,我们先要了解一下,其实这个头指针它在链表这里面是指的是一个哨兵位节点,他其实也属于一个节点,只不过我们不去访