网站大量收购独家精品文档,联系QQ:2885784924

西交大数据结构.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西交大数据结构

一、绪论: 对于人类和计算机科学推理与计算机来说,真正有用的不是数据本身,而是数据所携带的信息。 全球信息化,信息结构化,处理自动化。 数据结构就是数据组织的方法,是计算机解题的算法的一部分。 程序设计 数据结构+算法。P DS+AL D.Writh 有的定关系的数据元素的集合。 计算机的操作对象以及他们之间的关系和操作的学科。 计算机科学与其说是一门科学不如说是一门艺术。 计算机科学的核心是算法。 正确,易懂,易修改,易测试。 存储形式: 线性:数组 串 表 队 栈 非线性: 树 图 文件: 线性、Typedef 数据结构的类型的定义。Elemtype 数据元素的定义。 数据元素名:abcde 整形变量名:ijklmn 指针变量名:pqr 算法的五个传统的特性:确定性,可行性,有输入(零个或者多个),有输出(至少有一个输出结果),有穷性。 算法设计不等于程序设计。程序不具备有穷性(一个操作系统)。 好设计的四点基本目标:正确性,可读性(自己看被人看),健壮性(非法数据应报错),高效率低存储。 时间复杂度:T n 0 f n 用问题规模的数量级表述。 编译时耗+运行时耗。 空间复杂度:S n O f n 内存量 好设计准则: 程序设计原始任务说明。 程序工作正确 程序包含方案如何使用以及方案如何解题。 程序有效地利用了函数来建立逻辑单元。 程序代码可读。 程序运行的时间是否可以接受。 运行时间的测度: 方法一: #include Cloock_t start,stop; Double duration; Start clock ; …….. Stop clock ; duration double stop-start /CLK_TCK; 方法二: #include Time_t start,stop; Double duration; Start time NULL ;/*开始测定时间 几秒内。 ……. Stop time NULL ;/*停止测定时间,几秒内。 Duration double difftime stop-start ; ………. 只有在程序运行后才能得到。使用指导意义不大。 渐进符号:O(上界) w(下界) @(确界)。 逻辑结构+存储结构。 第二章 线性表 N个数据元素的有限序列。 节点,结点,顶点,数据元素均为一个意思,即处理对象。 线性表的ADT定义:12种标准操作算法。类C语言表示。函数库,C语言库。 顺序存储:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 Loc ai Loc a1 + i-1 *L; L是节点的大小。 逻辑顺序和物理顺序一致,线性关系利用物理上的相邻关系来体现。 插入需要考虑分配,而删除不需要考虑分配。 插入删除元素需要移动大量的元素,附加操作多。 数组长度过大时,预留空间浪费大。不能处理变长表。要求存储区连续。 链式表示和实现: 各节点之间以指针(指出元素地址)相连的数据结构。 节点:数据域+指针域。 带头结点的单链表。头结点没有data值,指向表首元。 动态结构无需预先分配空间。malloc 非随机存取,循链进行。 带头结点的空单链表 L- next NULL; 不带头结点的空单链表 L NULL; typedef struct LNode int data; struct LNode *next; Lnode,*Linklist; 单链表插入:s- next p- next;p- next s;次序不能发生变化。 单链表的删除:p- next s- next;free s ; void CreateLinkF Linklist L,int n Linklist s; L Linklist malloc sizeof LNode ; L- next NULL; for ;n 0;n-- s Linklist malloc sizeof LNode ; scanf %d,s- data ; s- next L- next; L- next s; 循环链表 : 初始化:L- next L; 遍历:从头结点开始遍历结束的条件是p L; 循环链表插入:S- next p- next; p- next s; p s; 从头结点出插入。 双向链表: 有两个指针域。 双链表的插入:newnode- llink s;newnode- rlink s- rlink; s- rlink- llink newnode;s- rlink newnode; 双向链表的删除: deleted- llink- rlink deleted- rlink;deleted- rlink- l

文档评论(0)

tiangou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档