数据结构
lxf_style
这个作者很懒,什么都没留下…
展开
-
斐波那契数的时间复杂度、空间复杂度详解
斐波那契数:斐波那契数列指的是1、1、2、3、5、8、13、21、······这样一个数列,我们可以发现它后面的一个数是前两个数之和。而在这个数列中的数就被称为斐波那契数。时间复杂度:时间复杂度实际就是一个函数,该函数计算的是执行基本操作的次数。时间复杂度的O渐进表示:算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化时,...原创 2018-05-26 01:00:21 · 63928 阅读 · 18 评论 -
【Linux】gcc -pthread与gcc -lpthread的区别
当我们使用线程包(pthread)内的函数时,直接用gcc编译一定会出现如下的报错信息:[admin@localhost day0720]$ gcc create.c /tmp/ccnWXVkV.o: In function `main':create.c:(.text+0x49): undefined reference to `pthread_create'collect2: ld...原创 2018-07-21 00:01:38 · 1595 阅读 · 0 评论 -
【数据结构】求链表中倒数第K个结点
链表面试题1:求链表中倒数第K个结点 分析题目: 根据题意可知,此链表为单向链表,无法从尾端回溯K步。 我们按照从k=1开始计数,即链表的倒数第一个结点是链表最后一个结点 解题思路: 方法一: 1、先遍历一遍链表,统计链表中结点的个数N(每经过一个结点计数器加1) 2、从链表的头节点开始遍历N-K步即可找...原创 2018-07-31 12:03:39 · 409 阅读 · 0 评论 -
【数据结构】合并两个有序链表
链表面试题2:输入两个递增排序的链表,合并这两个链表并使新链表的结点仍然是按照递增排序的。 分析题目:根据题目可模拟画出如下示意图,须将链表1和链表2合并并排序为链表3 解题思路: 1、先找出链表1和链表二中较小的头结点,作为链表3的头结点 2、使链表3的头结点指向剩余链表中较小的头结点 3、重复找到剩余链表中较小结点,连向链表3 ...原创 2018-07-31 16:11:51 · 2804 阅读 · 1 评论 -
【数据结构】复杂链表的复制
链表面试题3:实现一个复杂链表的复制,复杂链表中,每个结点除了有一个pNext指针指向下一个结点外,还有一个pRandom指针指向链表中任一结点或者NULL。 题目分析: 如下图这样的复杂链表,随机指针可能指向结点前面的结点、或者结点后面的结点、也可以指向它自己或者NULL 第一反应可以将复制分为两步,先进行普通单链表的复制,再进行每个结点random随机指针的复制,但ra...原创 2018-07-31 17:23:48 · 355 阅读 · 0 评论