软件技术基础复习提纲.docVIP

  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文档。上传文档
查看更多
软件技术基础复习提纲.doc

概述 计算机算法和数据结构以及程序的概念。 计算机算法是解决某一问题的有限运算序列,处理问题的策略 数据结构是问题的数学模型,是表示数据元素关系的结构。 程序是一组指令集,是计算机为了处理某些问题而编写的。程序的执行时间和很多因素有关:算法选用的策略;问题的规模;编写程序的语言;编译程序产生的机器代码的质量;计算机执行指令的速度。 算法的效率( 算法时间复杂度) 可以用原操作在算法中重复执行的次数作为算法运行时间的衡量准则; 算法的执行时间 =原操作(i)的执行次数×原操作(i)的执行时间; (算法的执行时间与原操作执行次数之和成正比) 随着问题规模 n 的增长,时间复杂度为O (n2)表示: 算法执行时间的增长率和 n2 的增长率相同。 数据,数据元素,数据项的概念。 数据:所有能被输入到计算机中,且能被计算机处理的符号的集合; 是计算机操作的对象的总称;是计算机处理的信息的某种特定的符号表示形式。 数据元素:是数据(集合)中的一个“个体” ,是数据结构中讨论的基本单位 。 数据项:是数据结构中讨论的最小单位 。数据元素可以是数据项的集合 。 算法设计的原则是: 正确性;可读性;健壮性;高效率与低存储量需求。 逻辑结构和存储结构的概念。数据元素及其关系指的是逻辑结构,四大类型的逻辑结构。线性结构和非线性结构。数据元素及其关系在计算机存储器内的表示,称为数据的存储结构。 线性表 顺序表:顺序的线性表中第一元素的存储地址为100,每个元素的长度为2,则第五个元素的地址是? 顺序存储的C语言描述。 顺序表中如何插入一个元素?时间复杂度为?如何删除一个元素?时间复杂度? 顺序表中,假定在线性表中任何一个位置上进行插入的概率都是相等的,则移动元素的期望值为:n/2 假设任何一个位置上进行删除的概率都是相等的,分析移动元素的期望值n-1/2。 链式存储: 带头结点的单链表为空的条件;不带头结点的单链表为空的条件。 在一个单链表中如何插入和删除一个结点?例如:若p所指向的结点后插入一个s所指向的结点语句: s-next=p-next; p-next=s 在一个单链表中,若p 所指结点不是最后结点,则删除p 所指结点的后继结点的正确操作是: p-next=p-next-next 关于链表的操作,如果给定一段程序,要回分析执行完之后能得到什么结果。比如说: while(p-next) p=p-next; 在双链表中,在指针P 所指结点后面插入一个由S指向的结点: S-next=P-next; P-next=;s; S-next-prior=s; S-prior-=p; 比较顺序存储结构和链式存储结构对各种操作的时间复杂度。 顺序表 链表 InitList O(1) O(1) GetElement:O(1) O(n) ListInsert: O(n) O(n) ListDelete: O(n) O(n) 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利 用顺序表存储方式最节省时间。 逆位序输入 n 个数据元素的值,建立带头结点的单链表(算法要求掌握)。 两个有序链表的归并(算法)。 栈和队列 栈的应用:数制转换(十进制转变成其它进制);括号匹配的检验;行编辑程序问题;迷宫求解;表达式求值;实现递归。把原来表达式转变成后缀式的算法。 栈的特点:LIFO,已知栈的入栈出栈操作过程,能分析得到的结果;已知入栈次序,会分析哪些出栈序列是可能的,哪些是不可能的。 链栈和顺序栈的比较:顺序栈占用的存数空间相对少,只存放数据元素的信息,链栈需要放指针的信息;在插入元素是链栈不会发生上溢出,但顺序栈的插入有可能会在空间不够时溢出;顺序栈和链栈在删除元素时,都可能发生下溢出。导致栈上溢的操作是栈满时执行的入栈操作。如何往顺序栈中插入一个元素?如何删除一个栈顶元素?先移动指针,后赋值还是反过来? 顺序栈的C语言描述。 把原来表达式转变成后缀的算法和结果。 队列的特点:FIFO。链队列的C语言描述。 循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front 和rear,则当前队列中的元素个数是:(rear-front+m) % m;设数组A[m]为循环队列Q 的存储空间,front 为队头指针,rear 为队尾指针,则判定Q 为空队列的条件是:Q.front= =Q.rear, 队满的条件(Q.rear+1)/Maxsize==Q.front 在一个长度为n 的循环链表中,删除其元素值为x 的结点的时间复杂度为O(n)。 链队列中插入和删除一个元素的算法。 数组 1. 一维数组(顺序表)或者多维数组的顺序

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档