• 数据结构、算法、线性表总结


    一、数据结构

    1.存储结构是逻辑结构是映射

    2.逻辑结构与存储结构的关系

    ◼ 存储结构是逻辑结构在计算机中的存储形式

    ◼ 同一逻辑结构可以对应多种存储结构

    ◼ 同样的操作在不同的存储结构上,实现方法不同

    二、算法

    1.递归O()计算:

    ​ ◼时间复杂度的关系:

    ​ O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)

    ◼指数时间的关系为: 
    

    ​ O(2n)<O(n!)<O(nn)

    ​ ◼最好时间复杂度

    ​ 算法在最好情况下的时间复杂度

    ​ ◼ 最坏时间复杂度

    ​ 算法在最坏情况下的时间复杂度,确定了算法执行时间的上界。

    ​ ◼ 平均时间复杂度

    ​ 算法在所有可能情况下,按照输入实例以等概率出现时,算法计算量的加权平均值。

    ​ ◼更关心最坏情况下和平均情况下的时间复杂度。

    ​ ◼很多情况下,算法的平均时间复杂度难于确定,通常只考虑最坏情况下的时间复杂度。

    3.算法存储空间分析

    ​ ◼ 算法的空间效率

    ​ 算法的执行过程中,所占据的辅助空间数量

    ​ ◼ 空间复杂度

    ​ 算法在运行过程中临时占用的存储空间的度量

    ​ ◼一般也是问题规模n的的函数S(n)=O(g(n))

    ​ ◼算法的时间复杂度与空间复杂度相互影响。

    ​ ◼好的时间复杂度,可能会导致占用较多存储空间

    ​ ◼ 通常情况下:

    ​ 鉴于运算空间较为充足,常以算法的时间复杂度作为算法优劣的衡量指标。

    三、线性表

    1.顺序

    2.链式

    3.建立单链表

    ​ ◼头插法

    ​ 思路:生成一个空表,不断将新节点插入链表表头

    void CreateListF(LinkList *&L, ElemType a[], int n)
    { 	
    	LinkList *s;
    	int i;
    	L = new LNode;
        L->next = NULL; //创建头节点,其next域置为NULL
    	for (i=0; i<n; i++) { //循环建立数据节点
    		s = new LNode; 
    		s->data = a[i]; //创建数据节点*s
    		s->next = L->next; //将*s插在原开始节点之前,头节点之后
    		L->next = s;
    	}
    }
    

    ​ 链表的节点顺序与逻辑次序相反

    ​ ◼尾插法

    ​ 思路:将新节点始终插入链表表尾,需要一个尾指针r

    void CreateListR(LinkList *&L, ElemType a[], int n)
    { 
    	LinkList *s,*r;
    	int i;
    	L = new LNode; //创建头节点
    	r=L; //r始终指向尾节点,开始时指向头节点
    	for (i=0; i<n; i++) { //循环建立数据节点
    		s = new LNode;
    		s->data = a[i]; //创建数据节点*s
    		r->next = s; //将*s插入*r之后
    		r = s;
    	}
    	r->next = NULL; //尾节点next域置为NULL
    }
    
    四、栈与队列

    ​ ◼ 链栈

    ​ 无需附加头结点,栈顶指针就是链表(即链栈)头指针

    五、串

    ◼ next函数


    疑难问题及解决方案
    迷宫问题和KMP,以及next函数,一开始并没有看懂,后来在网上找了一些讲解资源,弄懂了
    PTA上有一些对一半的题,通过和同学作业的对比,找出了问题,改正了过来

  • 相关阅读:
    【转载】MFC与ARX结合开发完美的AutoCAD应用程序
    【转载】SDK中调用COM的例子
    Visual Studio 2010 Beta 2 官方下载地址公布
    【转载】WPF中DataTemplate基本原理与缺陷分析
    【转载】曲线打断、求交点
    【转载】MFC单文档视图穷追猛打
    【转载】在对话框中加入属性页
    【项目】08年度科创项目“绘图助手工具箱”项目成果发布
    【项目】ARX程序开发:框裁直线(Rect Trim Line)功能开发
    【转载】ARX程序再VS2002中的调试初探
  • 原文地址:https://www.cnblogs.com/lim-M/p/12589543.html
Copyright © 2020-2023  润新知