数据结构易错点总结资料.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
集合是非线性结构 □□□□ 数据的最小单位是数据项,基本单位是数据元素。数据对象是性质相同的数据元素的集合 □□□□ 数据结构=逻辑结构+存储结构+数据的运算=数据对象+数据元素间的关系(结构) □□□□ 逻辑结构线性结构: □□□□ 算法的5个特性:有穷性,确定性(无二义性),可行性,输入,输出 □□□□ “好”的算法:正确性,健壮性,可读性,效率 □□□□ 线性表存储的是数据元素。 注意区分线性表和顺序表! □□□□ 动态分配并不是链式存储,同样还是顺序存储,依然是随机存取方式 □□□□ 顺序表是线性表基于数组的存储表示,可按照数组的下标直接访问 □□□□ 静态链表:为数组中每一个元素附加一个链接指针,就形成静态链表,与链表的指针不同的是,这里的指针用数组下标表示 □□□□ 在需要数节点个数的题中,一定要注意链表是否带头节点 □□□□ 删除操作时记得free □□□□ 带头节点的双循环链表L中只有一个元素节点的条件:L-next-next==LL-prior-prior==LL-next!=L(循环:一定要排除空表的情况!双:一定要记得双向指针都改变:prior,next □□□□ 首节点:头节点后第一个节点 □□□□ 算法:解决问题的有限指令序列(运算序列) □□□□ 设计递归时,一定不要忘记写递归终止条件 □□□□ 循环链表不是线性表,没头没尾的循环链表是存储结构,不是逻辑结构,是线性表的特殊存储方式 □□□□ 当表中所有元素都是不可再分的原子-线性表,当表中有可再分的子表-广义表 □□□□ 顺序存取≠顺序存储 □□□□ 线性表不等同于一维数组,不可以通用,因为数组中的元素可以不连续存放,而顺序表的元素必须相继存放 □□□□ 顺序表可以从前往后顺序存取,也可以从后往前顺序存取,还可以直接存取 □□□□ 在顺序表中可以用p++顺序进到下一个数据元素的位置,但是在单链表中,必须使用p=p-link □□□□ 除数组外,每种数据结构都应具备3种基本运算:插入、删除、查找 □□□□ 线性表若采用链式存储表示时,所有存储单元地址(×)可连续可不连续× □□□□ 不带头节点的单链表判空:first=NULL,带头节点的单链表判空:first-link==NULL □□□□ 静态链表的头节点在0号数组元素位置,最后一个节点的link域中用“-1”表示链表收尾,若是静态循环链表,最后一个节点的link域是“0”,表示指向表头 □□□□ 静态链表的存储数组用指针定义且动态分配的,是可以扩充的 □□□□ 链表插入排序:在有序链表中寻找插入位置插入 □□□□ 消除递归不一定用栈 □□□□ 递归单向递归 尾递归的递归调用语句只有一个,且放在过程的最后,当递归调用返回时,返回到上一层递归调用语句的下一语句,因此不必使用栈保存返回地址,除返回值和引用值外,其他参数和局部变量值都不再需要 尾递归:long Factorial(long n)ifn==0 return 1; □□□□ 栈和队列都是线性存取的线性表(注意线性存取和线性存储!) □□□□ 多个栈共存时,最好用链式存储结构作为存储结构 □□□□ 在元素入栈时,一定要判断栈是否栈满 顺序栈用data[1..n]存储数据,栈顶指针为top,则x入栈操作为:if(top!=n) data[++top]=x □□□□ 中缀表达式转化为后缀表达式:先加括号-符号移到所在括号后面(可用.作为分隔符,如12.3.13) □□□□ 循环队列是一种顺序存储结构,是为了克服队列的假溢出 □□□□ 循环队列的长度:(Q.rear-Q.front+MaxSize)%MaxSize 队尾指针进1:Q.rear=(Q.rear+1)%MaxSize □□□□ 递归:优:程序结构简单,程序易读 缺点:内存占用较多,运行效率低 什么是递归?一个函数在结束本函数运行之前,直接或间接调用函数的自身,称为递归 递归的入口语句、出口语句一般用条件判断语句来实现 □□□□ 循环队列初始状态:Q.front=Q.rear=0 □□□□ Next数组为最长相同前后缀长度+1 串本身不能作为前后缀 next[1]=0(下标根据具体题目而定) 序号 1 2 3 4 a a a b next 0 1 2 3 若next[1]=-1 -1 0 1 2 □□□□ Substr(start,len):从字符串抽取从start下标开始的指定数目的字符 □□□□ 求nextval: 模式串 A B A B A A B j 1 2 3 4 5 6 7 next[j] 0 1 1 2 3 4 2 nextval 0 1 0 1 0 4 1 nextval[1]=0(

文档评论(0)

177****6330 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档