上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 52 下一页
摘要: 一 循环链表基础 在单链表中,有了头结点,我们可以在O(1)时间访问到第一个节点,但如果要访问最后一个节点却需要O(n)的时间,因为我们需要对整个链表进行一次遍历。在循环链表中,我们可以借助尾节点来实现,即不用头指针,而是用指向终端结点的尾指针来表示循环链表,这时候无论是查找第一个节点还是最后一个节 阅读全文
posted @ 2018-04-19 12:55 Fate0729 阅读(751) 评论(0) 推荐(1)
摘要: 一 指针和数组对比 C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它 阅读全文
posted @ 2018-04-19 09:42 Fate0729 阅读(6115) 评论(0) 推荐(7)
摘要: 一 数组 数组中稍微复杂一点的是多维数组和动态数组。对于C语言而言,多维数组本质上也是通过一维数组实现的。至于动态数组,是指数组的容量能动态增长的数组;对于C语言而言,若要提供动态数组,需要手动实现;而对于C++而言,STL提供了vector。 1.1 vector使用 (1)构造函数 vector 阅读全文
posted @ 2018-04-18 16:37 Fate0729 阅读(978) 评论(0) 推荐(1)
摘要: 一 题目:合并两个排序的链表 二 代码实现 将链表换成数组做简单的循环和递归测试 (1)循环实现 (2)递归实现 阅读全文
posted @ 2018-04-18 15:12 Fate0729 阅读(276) 评论(0) 推荐(0)
摘要: 内存分配方式 在C++中,内存分为内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 (1)堆 就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 阅读全文
posted @ 2018-04-18 13:02 Fate0729 阅读(231) 评论(0) 推荐(0)
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 52 下一页