数据结构
Muzijin0129
这个作者很懒,什么都没留下…
展开
-
线性表链式存储结构,链表
单链表,我们可以用c语言的结构指针来描述typedef struct LNode{ ElemType data; struct LNode *next;}LNode, *LinkList;从这个结构指针中我们可以得出,单链表的结点是由存放数据的数据域和存放后继结点地址的指针域组成。获得链表第i个数据的算法思路:声明一个指针p指向链表的第一个结点,初始化j从1开始;当j<i时,就遍历链表,让p的指针向后移动,不断指向下一个结点,j累加1;若到链表末尾p为空,则说明第i原创 2020-11-22 22:49:57 · 202 阅读 · 0 评论 -
顺序存储结构,顺序表
描述顺序存储结构的所需的三个属性:存储空间的起始位置线性表的当前长度当前分配的存储容量typedef struct { ElemType *elem; int length; int listsize;}SqList;插入算法的思路:如果插入位置不合理,抛出异常;如果线性表长度大于等于存储空间的容量,则抛出异常或动态增加容量;从最后一个元素开始向前遍历到第i个位置,分别将他们都向后移动一个位置;将要插入元素填入位置i处;表长加1;Status Lis原创 2020-11-16 18:48:59 · 515 阅读 · 0 评论 -
算法的时间复杂度
算法时间复杂度的定义定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的复杂度就是算法的时间量度,记做:T(n)=O(f(n))。他表示随着问题规模n的增大,算法执行时间按的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度。其中f(n)是问题规模n的某个函数。这样用大O()记述时间复杂度的方法被称为大O记法。一般情况下,随着n的增大,T(n)增长最慢的算法为最优算法。(要注意是增长)推导大O阶方法1.用常数1取代原创 2020-11-09 15:51:53 · 463 阅读 · 0 评论