计算机二级C语言概念笔记3(仅供交流学习不得商用以及有盈利性行为)

  1. 【解析】栈是先进后出的线性结构,top表示目前栈顶元素所在数组元素的下标,称栈顶指针。当有新数据入栈或栈中有数据出栈时,top变量的值分别+1、-1跟随变化。本题初始状态top=0,说明从栈底开始的第1个空间下标为1,入栈时,新元素是向下标增大的方向使用空间,也即入栈时top+1、出栈时top-1。top=20时,使用了下标为1~20的这些空间,因此栈中数据元素个数为20。
  2. 堆排序最坏情况下比较次数为n*log(2)n,快速排序、直接插入排序、冒泡排序均为n(n-1)/2。
  3. 栈按“先进后出”组织数据,只能在栈顶这一段插入和删除数据。
  4. 算法的空间复杂度是指算法在执行过程中所需要的计算机存储空间,包括算法程序所占的空间输入的初始数据所占的空间,以及算法执行过程中所需要的额外空间(包括临时工作单元)。
  5. 在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
  6. 一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。具有n个节点的完全二叉树的深度为log2(n+1)。深度为k的完全二叉树,至少有2^(k-1)个节点,至多有2^k-1个节点。
  7. 二叉树的度意思就是:二叉树中某个结点的子节点或直接后继节点的个数,1度就代表只有一个子节点或者它是单子树,2度就代表有两个子节点或是左右子树都有,二叉树就是一个连通的无环图,并且每一个顶点的度不大于3。
  8. 节点数包含的是树中的每一个点。度为2的节点总比叶子节点(即度为0的节点)少1个。总结点=度为0的节点+度为1的节点+度为2的节点。
  9. 算法的有穷性是指算法程序的运行时间是有限的。
  10. 算法的复杂度包括时间复杂度和空间复杂度,时间复杂度是算法执行过程中所需要的基本运算次数,空间复杂度是执行程序所需要的存储空间。
  11. 二叉树是非线性结构,栈,队列都是线性结构。
  12. 栈是“先进后出”的线性结构出栈与入栈顺序相反。
  13. 循环队列中元素的个数是由队头指针和队尾指针共同决定。
  14. 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。
  15. 对于循环队列,队头指针可以大于队尾指针,也可以小于队尾指针。循环队列运行起来后,rear和front的大小不一定。循环队列目前的元素个数用rear减front求得,若结果为负,加数组总容量即可。
  16. 在直接插入排序,冒泡排序,简单选择排序,堆排序中最坏情况下比较次数最少的是堆排序。堆排序最坏情况下比较次数为n*log(2)n,其他三项均为n(n-1)/2。
  17. 栈按先进后出组织数据,队列是先进先出,循环队列是用数组存储的队列,是线性结构。有序线性表系可以顺序存储,也可以链式存储。
  18. 堆栈支持子程序调用,函数调用,递归,转换与计算表达式等。
  19. 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
  20. 栈是“先进后出”的线性结构,栈顶元素是最先被删除。
  21. 栈是“先进后出”的线性结构,设置一个整数变量top表示目前栈顶元素所在数组元素的下标,top称栈顶指针。当有新数据入栈或栈中有数据出栈时,top变量的值分别加1,-1跟随变化;top=-1时表示栈空,top=M-1时表示栈满。由于堆栈只在栈顶一端插入或删除数据,因此不设栈底指针,如果设置栈底指针,栈底指针也不会变化(这是指顺序存储的栈,如果用链式存储,则栈底指针可能变化)。
  22. 只有一个根结点的数据结构,不一定是线性结构,有一个以上根结点的数据结构一定是非线性结构。
  23. 循环队列是队列的一种顺序存储结构。
  24. 在线性链表中进行插入与删除时,不需要移动表中的元素。
  25. 程序执行的效率与数据的存储结构密切相关。
  26. 队列是先进先出的线性结构,先到先服务的作业调度,显然要用队列实现。
  27. 函数的递归调用是用堆栈实现的,多重循环的执行、数组元素的引用,是程序设计中的技术与队列无关。
  28. 算法的时间复杂度与空间复杂度没有直接关系,虽然有时可以牺牲一定的空间换取时间或者牺牲一定的时间换取空间,但二者并无直接必然关系。
  29. 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化。
  30. 有且只有一个根结点的数据结构,可能是线性结构,也可能是非线性结构。
  31. 线性单链表的节点只有一个,指针域只能从它访问其后面的节点,而不能访问前面的节点,双向链表也叫双链表,它的每个数据节点都有两个指针,分别指向直接后继和直接前驱,所以从双向链表中的任意一个节点开始,都可以很方便地访问它的前驱结点和后继节点,可以从一个节点开始,遍历所有节点,单向链表只能从一个节点开始访问后面的节点。循环链表相当于把单链表首尾相接,可遍历所有节点。
  32.  
  33.  
  34.  

 

 该系列笔记持续更新中,未完待续……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值