数据结构word笔记.doc

  1. 1、本文档共118页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
张东 1145105494 简介: 1、算法+数据结构=程序 2、数据结构 3、数据、数据元素(基本单位)、数据项(最小单位) 4、数据结构在计算机中的映像是存储结构;数据元素在计算机中的映像是结点;数据项在计算机中的映像是数据域;逻辑结构在计算机中的映像是关系。 5、四种存储方式 6、抽象数据类型 1)按不同特性分类 原子类型 固定聚合类型 可变聚合类型 2)基本操作 init 构造 destroy 销毁 get 返回 put 改变 isasc 升序 isdesc 降序 Max 最大 min 最小 7、时间复杂度 技巧 1)对于循环程序(for),最大执行次数即为for的乘积。简言之,程序有多少for出现,就是n的多少次方 2)对于顺序结构,可用“求和取最大值“法则 3)对于循环程序(while),一般结果是O(logMN) 4)若是一般的赋值语句,时间复杂度必为O(1) 5)对于选择结构的程序,一般时间复杂度为O(1) 加:自加自减 ++ —— x=2; y=x++; y=++x; 第二章 线性表 1、表长相当于元素个数 2、线性表一般下标是1—n,故当n=0时,表示线性表为空表 3、list 表示线性表 elem 元素 length 表示求长度(线性表) locate 定位(位置) insert 插入(元素之前) delete 删除 void 空类型(写程序必写) 顺序结构(链表相反) 优势:随机存取 劣势:在做插入或删除时需要移动大量的元素 malloc 分配一个连续空间 realloc 将已分配的空间进行重新分配 顺序表 插入时所需移动的元素次数期望值是n/2 删除时所需移动的元素次数期望值是(n-1)/2 删除: 模板语句: q=(L.elem[i-1]) 表示顺序表中插入元素或者删除元素的地址 加: 逻辑运算符: !非 与(一假即假) ||或(一真即真) 逻辑值: 真(1) 假(0) 比较运算符: = = == != 若在if或者while后面的括号中出现逻辑表达式或者比较表达式,那么结果只能为真或假。 模板语句: if(i1||iL.length) return ERROR; 表示在顺序表中,删除元素,若输入的删除地址不符合题意,则返回错误。 2、链式结构 1)结点=数据域(元素)+指针域(指向后继结点) 单链表 2)一般在第一个元素之前,会创建一个头结点(头指针),用head表示。指向第一个元素 head-NULL 表示空表 head-next=NULL clear 重置 create 创建 模板语句 p=L-next 表示单链表中、头结点为L指向下一个结点 N=(linklist)malloc(sizeof(LNode)) 表示在单链表中生成新结点 技巧: 做单链表的插入操作 1)判断单链表的存在与否 2)找到插入位置 p=p-next j++ 3)生成新结点 malloc 4)赋值 p-data=e(插入的元素) 5)插入元素 单链表删除操作 1)2)同插入 3)删除结点 模板 输出逆序 顺序 for(i=0;in;i++) 逆序 for(i=n;i0;i--) 循环链表 1、判断单链表的最后一个结点,表示方式是指针域为空;判断循环链表的最后结点,表示方式是指针域指向第一个结点 2、不需要头结点 3、循环链表为空,表达方式为 L-next=L 双向链表 1、插入 2、删除 3、三部分:data next prior linklist表示链式结构的线性表 第三章 栈和队列 1、操作受限的线性表 栈 1、先进后出 后进先出 2、表头-栈底 表尾-栈顶 3、必须要有栈顶指针 top 系列:12345进栈 出栈:12345 54321 34521 24351 41235 4、 stack 栈 push 进栈 pop 出栈 empty 判断是否为空 5、当top=0/-1时,表示为空栈 top==base(指向栈底指针) top-base=0 stacksize=N 表示栈中元素个数 模板语句 1)S.top==S.base 设置栈顶栈底指针 2) S.Stacksize= STACK_INIT_SIZE 6、 入栈(插入):栈满(s.top-s.base=s.stacksize);s.top++;*s.top=e 出栈(删除):栈空(s.top==s.base);s.top--;e=*s.top 7、加:双栈共享一个空间 栈:1,2 空间:A[m] 1)栈底在空间两端 2)栈空:top1==0 top2==m

文档评论(0)

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

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

1亿VIP精品文档

相关文档