
算法
wuzhidexiaoxiaoxia
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第三章 表、栈和队列(二)图解list.h
分解list.h普通链表部分,绘图链表,基本包含了双向链表的各种操作。定义struct list_head { struct list_head *next, *prev;};1、创建一个链表基本单元WRITE_ONCE本身是赋值操作,因为关系到存储对齐问题和CPU冲突问题,所以写法和应用层不同因为只考虑算法,可以认为是普通赋值,不做计较。以下三个代码功能一致。#d...原创 2019-06-06 21:29:13 · 242 阅读 · 0 评论 -
第三章 表、栈和队列(三)链表的实现和多项式的实现
github地址:https://github.com/wyd933/datastructure挖坑:关于基数排序我想到一个Hash列表处理的好方法,后面写用链表实现一个多项式的加法和乘法。内容介绍: 链表直接采用list.h的基本操作,并加以封装。主要是希望链表可以类似于继承的、面向对象程序的方式进行操作。这样做的好处就是,所有关于链表的操作均以一套API完成...原创 2019-06-13 20:16:24 · 266 阅读 · 0 评论 -
第三章 表、栈和队列(四)栈的实现以及平衡符号的实现
用list.h实现栈,编写平衡符号代码、后缀表达式代码,中缀和后缀表达式的转换。主要是对list.h的封装,list.h满足堆和队列的一切操作,stack是list的子集遇到的问题:typedef struct list_head *Stack;struct balance_char { char c; Stack s;};#define stack_en...原创 2019-06-15 11:59:21 · 262 阅读 · 0 评论 -
第三章 表、栈和队列(五)总结
注意事项:在做指针的时候一定要明确指向的内容,如list_entry需要某个变量的地址,那就定义一个结构体,指向的时候,指向这个结构体的地址。内核在做hash_list的时候就是这么做的。 代码最好具有通用性,list.h的代码插入任何结构体中,均可以保证结构体具有链表的属性和功能 表头很重要,有表头逻辑更清晰。有表头不用担心链表的第一项和最后一项的插入和删除,整体上方便的多。而且多数链表...原创 2019-06-15 13:58:06 · 134 阅读 · 0 评论 -
数据结构与算法分析第一章引论
第一章引论引论中心思想:1、在合理的时间内能够处理较大的数据量,才是一个切合实际的算法。2、写出一个可以工作的程序并不够,如果在巨大数据集上运行,那么运行时间也成了重要问题。所以学习算法的目之一:对于大量的输入,估计程序的运行时间,在尚未 具体编码的情况下比较两个程序的运行时间。并且改进程序的速度,确定程序瓶颈的方法补:后面还会看到,如果输入量不大,而过多设计也是得不偿失...原创 2017-03-01 09:24:15 · 415 阅读 · 0 评论 -
第三章 表、栈和队列(一)概念
本写作参考《数据结构与算法分析--C语言描述》,linux的list.h文件,以及数组和链表的一些理解目的如下:简要描述链表和数组为什么重要,具体主要是内存分配原因 绘图分析list.h的双向链表,来看看双向链表是如何拓展为栈和队列的 分析一下双向链表是如何面向对象的,为什么没写构造的函数1、链表和数组 链表和数组是对内存的两种分配方式,通常是这样:数组是一个...原创 2019-06-05 00:32:18 · 202 阅读 · 0 评论