# 程序设计引导

本文详细介绍了程序设计的基本概念,包括编程目的、数据结构和算法。讲解了数组、链表、栈和队列的特点与优缺点,以及线性存储与链式存储的区别。还探讨了树与二叉树的结构,强调了二分查找的重要性。最后提到了操作系统、进程管理和存储器分配的相关知识,以及IP地址和子网掩码的概念。
摘要由CSDN通过智能技术生成

 

 

1. 编程的目的

为了让计算机帮我们计算解决问题

  • 算法——解决问题的方法
  • 高级语言——py

数据非常多或庞大的话怎么存储?了解数据结构。

数据存储在内存中,数字1需要4个字节存储,12345都要存储,线性存储,

1 2 3 4 5

除了首元素,所有的元素都有前区元素,除了尾元素,其他的元素都有后区元素;

第一个元素的地址为0x10,第二个为0x14,第三个为0x18,第四个为0x1C,第五个为0x20。

第一个地址记录为p,那么第三个为p+4*2.

数列的元素类型可以不同,但是数组的元素元素类型必须一样.

数组:3 5 8 9

想把6加入到数组中不改变有序性,第一步比较第一个元素,发现不符合,第二个不符合,第三个符合,6存放在8的位置,8后移,最后添加一个位置    

3 5 9 10
a b c null

 数据

指针   :每一个数据存放的地址,a存放5的地址,b存放9的地址,c存放10的地址

链表中一个节点分为两个区域,一个指针域一个数据域,指针域的内容就是指针。指针指向下一个节点,a

 

数组的元素必须挨着存放,连续,而且如果想找到10的地址,要从第一个一次遍历,到最后一个,这样比较麻烦,所以如果想要多次删除和添加时用链表。

线性存储:数组

>优点:很便捷的访问数组中的每一个元素

>缺点:插入删除操作,代价过大

元素与元素之间在内存中连续存储,需要占用一整块内存

链式存储:链表

>优点:便于及进行插入删除操作,

>缺点:访问指定元素代价过大(与数组比较)

元素与元素之间位置没有要求,可以在任意位置,不需要连续存储空间,但是内存使用要比数组大

结构特点:后进先出,先进后出,入栈顺序与出栈顺序相反。栈顶与栈尾的结构

比如进制转换中10进制的10转换为2进制,依次除2取余,为0 1 0 1,第一个0先进栈,再依次进行,那么出栈时最后一个1先出

迷宫求解也是用了栈的特点来记录每一个走过的栈的位置,

  • 队列

队列特点:先进先出,后进后出。

练习:现在有一个队列,后面有一个栈,A B C D依次进入队列,进入栈出栈的可能情况。那么出队列的顺序为A B C D,

!!!!

树与二叉树结构

第一层为根节点,第二层叶节点!!!!!,后面的子节点。由同一个节点产生的节点为兄弟节点,上一节点为父节点,下面的某一个节点的上n个节点叫本节点的祖先,从根结点到该结点所经过分支上的所有结点

1.树的

某一个子节点最大的节点数。

2.树的深度

从第一层依次往下一共多少层。

  • 二叉树

不是度为2的树。一个叫做左节点一个叫做右节点。树和二叉树是完全不同的概念。

二分查找:比如1 2 3 4 5 6……

> 满二叉树

>>每一层节点取满,每一层的节点为2^(n-1)个,如果节点数小于该数那么就不是满二叉树。

>>求n层的满二叉树的节点总个数。等比数列求和:2^n-1

>>叶子节点的个数等于度为2的节点数+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值