c语言判断单链表是否有环,判断单链表是否存在环,判断两个链表是否相交问题详解...

发布时间:2014-09-22 09:21:15

有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如何找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,f.........【阅读全文】

阅读(1072) | 评论(0) | 转发(1)

发布时间:2014-08-04 12:05:27

queue和list的结构定义和操作都在'sys/queue.h'中完成, 主要定义了下面四种数据结构:单向列表(single-linked lists)单向尾队列(single-linked tail queue)列表(lists)尾队列(tail queues)尾队列图示 尾队列常用宏宏名称.........【阅读全文】

阅读(1332) | 评论(0) | 转发(0)

发布时间:2014-07-30 11:32:49

兔子繁殖问题与斐波那契  裴波那契(Fibonacci leonardo,约1170-1250)是意大利著名数学家. 他最重要的研究成果是在不定分析和数论方面,他的“裴波那契数列”成为世人们热衷研究的问题.  保存至今的裴波那契著作有5部,其中影响最大的是1202年在意大利出版的《算盘书》,《算盘书》中许多有趣的问题.........【阅读全文】

阅读(948) | 评论(0) | 转发(0)

发布时间:2014-07-26 20:48:19

首先什么是小根堆:(1)它是一颗完全二叉树(2)任意一个节点均小于或等于其左右子节点的关键码(大根堆相反就是了)因此可以得知,当前树形结构的根节点就是当前整个树形结构最小的节点。。。至于说这种堆结构有什么作用:(1)以前本科的时候上数据结构课的时候就有讲过堆排序,好像还不错,.........【阅读全文】

阅读(873) | 评论(0) | 转发(0)

发布时间:2014-07-25 15:49:42

小根堆如果有一个关键字的集合K={k0,k1,k2, ..., kn-1}, 把所有元素按完全二叉树的顺序存储方式存放在一个一维数组中,并且满足ki ......【阅读全文】

阅读(864) | 评论(0) | 转发(0)

发布时间:2014-07-07 23:31:44

前面三篇博文我们分别回顾了冒泡排序、选择排序、插入排序、希尔排序、归并排序、堆排序和快速排序。关于排序算法有几种分类标准,稳定与非稳定、内部与外部。   所谓稳定的排序算法,意思是如果待排序序列有相同元素,经过排序算法处理后他们的相对顺序和排序前在序列里的相对顺序一样,这样我.........【阅读全文】

阅读(545) | 评论(0) | 转发(0)

发布时间:2014-07-07 23:31:28

这是排序算法的最后一篇了,剩下归并排序、堆排序和快速排序了,关于各种排序算法的效率、适用场合和性能的分析留到下一篇再讲。归并排序   归并排序是基于归并操作的,归并操作的思想很简单,针对两个已经排好序的有序序列:   1、申请一块额外的存储空间,空间的大小等于两个待操.........【阅读全文】

阅读(522) | 评论(0) | 转发(0)

发布时间:2014-07-07 23:31:11

上一篇我们回顾了选择和冒泡排序、以及改进的冒泡排序两种算法,今天我们来看一下插入排序和希尔排序。插入排序    插入排序的本质是将待排序序列分成有序和无序两部分,通常情况下我们都认为序列的第一元素是有序的,所以插入排序一般是从序列的第二个元素(下标是1的位置)开始。插入排序.........【阅读全文】

阅读(528) | 评论(0) | 转发(0)

发布时间:2014-07-07 23:30:45

除了刚迈出校门找工作那会儿对基本排序算法还算“了然于心”,随着工作和时间的推移,当回头再来看这些基础的不能再基础的东西时,绝大多数人无法写出经典排序算法的核心代码,甚至连算法原理都忘了。我承认,自己就是这样的人,所以今天有空将常见的几种排序算法复习一下,写个笔记。一方面给自己一个“重新.........【阅读全文】

阅读(535) | 评论(0) | 转发(0)

发布时间:2014-07-07 23:21:19

......【阅读全文】

阅读(840) | 评论(0) | 转发(0)

发布时间:2014-07-07 23:20:52

B-树是一种平衡的多路查找树,它在文件系统中很有用。 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树: ⑴树中每个结点至多有m 棵子树; ⑵若根结点不是叶子结点,则至少有两棵子树;......【阅读全文】

阅读(2045) | 评论(0) | 转发(0)

发布时间:2014-03-21 16:06:23

红黑树系列http://blog.csdn.net/v_JULY_v/article/details/6105630......【阅读全文】

阅读(386) | 评论(0) | 转发(0)

给主人留下些什么吧!~~

5912f20dce37ab765d987cdcd2d4b9c0.png

tianyashuibin2014-12-08 11:22

Oscarzhao:c++11 中貌似可以

嗯,是的,在c++11中可以

下面是在gcc的编译结果:

test_struct.cc:8:11: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]

int a = 1;

^

d871a5bd64e9d1050b87c4696f90edf5.png

Oscarzhao2014-11-26 20:12

tianyashuibin:除了静态数据成员外,数据成员不能在类体内显式的初始化

举个最简单例子

struct a

int a=1;

int b=2;

};

这也不能通过啊!

原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间

c++11 中貌似可以

5912f20dce37ab765d987cdcd2d4b9c0.png

tianyashuibin2014-10-23 21:57

除了静态数据成员外,数据成员不能在类体内显式的初始化

举个最简单例子

struct a

int a=1;

int b=2;

};

这也不能通过啊!

原因很简单,因为struct a此时只是在说明有这么个类型,而并没有定义一个具体的变量和分配内存空间

5912f20dce37ab765d987cdcd2d4b9c0.png

tianyashuibin2014-10-23 21:39

1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员

2.进入构造函数后在构造函数中执行一般计算

1.类里面的任何成员变量在定义时是不能初始化的。

2.一般的数据成员可以在构造函数中初始化。

3.const数据成员必须在构造函数的初始化列表中初始化。

4.static要在类的定义外面初始化。

5.数组成员是不能在初始化列表里初始化的。

6.不能给数组指定明显的初始化。

这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。

5912f20dce37ab765d987cdcd2d4b9c0.png

tianyashuibin2014-10-23 21:32

记住静态成员这样初始化:

C/C++ code

class A

{

public:

static const int a[3];

};

const int A::a[3] = {1,2,3};

留言热议

请登录后留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值