- 博客(7)
- 资源 (8)
- 收藏
- 关注
转载 使用typedef定义struct的作用
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去str
2017-10-31 16:32:43 2321 1
原创 数据结构入门学习系列-6(链表合并与多项式合并算法)
由之前对单链表的熟悉,本文章结合一个经典例子总结一下,即合并有序的单链表,如图所示:将La,Lb合并生成新的单链表Lc。基本思路如下:将La赋值给Lc然后对比La的第一个元素和Lb的第一个元素,对比之后,开始钩链的过程。最终对比完成之后,生成Lc链表,删除Lb链表。同时记得在出现相同值得情况下,删掉一个元素,释放内存。先看一下链接了两个链表第一个元素的情况:这个时候La
2017-10-28 16:16:03 969
原创 数据结构入门学习系列-5(链表的基本操作算法)
链表的基本操作算法: 链表的创建,分为两种,一种是队尾插入,一种是队头插入: typedef struct LNode { ElemType data; struct LNode *next;} LNode;//创建链表(头插入法)LNode *create_LinkList_Head(){ int data; LNode *head,
2017-10-23 19:09:36 577
原创 数据结构入门学习系列-4(线性表的链式存储)
上一篇讲了线性表中的线性存储,改文章学习一下线性表的链式存储结构。 链式存储:一组任意的存储单元来存储数据,而不必须是连续的存储的单元。因此为了正确表示数据间的逻辑关系,除了数据域域外,我们还需要一个指针域。 当一个节点只包含一个指针域的时候,该指针指向数据的后继节点,我们称为单链表。如下图所示: data*next
2017-10-23 10:47:39 196
原创 数据结构入门学习系列-3(线性表的顺序存储)
空间复杂度:算法写成程序后,运行时占用的电脑内存空间。S(n)=O(f(n)) 这个比较好理解,比如一维数组a[n]占用空间复杂度是:S(n)=O(n), 二维数组a[n][m]占用空间复杂度是:S(n)=O(n*m) 线性结构中的线性表:存在唯一的第一个元素和最后一个元素。除了这两个特殊数据之外,中间元素都有
2017-10-19 17:05:36 296
原创 数据结构入门学习系列-2(算法的时间复杂度)
算法: 有穷性 确定性 可行性 输入(可选) 输出算法效率: 事后统计:计算机上的运行时间 事前分析:求出该算法一个时间界限函数 算法中基本操作重复执行的次数是问题规模n的某个函数,T(n)=O(f(n)),时间复杂度。用最深层循环内的语句中原操作的执行频度。 如果T(n) 和 f(n) 是n 的函数,当n →∞ 时,有T(n) /
2017-10-17 17:29:26 419
原创 数据结构入门学习系列-1(基本数据结构)
在做项目的经验中发现数据结构与算法基本决定了一个程序员所能达到的上限,因为最新发现技术上遭遇瓶颈,无法有效提升最终是由于数据结构与算法的限制。所以想从头学习一遍数据结构与算法,该系列可以作为入门级教程。新手参考,大牛就不用浪费时间看了。 首先数据结构包含以下几种基本关系(逻辑结构): 集合--数据同属于一个集合 线性结构--一对一的关系 树形结构--一对多的
2017-10-17 10:47:08 235
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人