树和二叉树
树的定义定义和术语
树(tree): 树是n(n≥0)个结点的有限集T,
当n=0时,T为空树;
当n>0时,
(1)有且仅有一个称为T的根的结点,
(2)当n>1时,余下的结点分为m(m>0)个互不相交的有 限集T1,T2,…,Tm ,每个Ti(1≤i≤m)也是一棵树,且称为 根的子树
2.结点的度(degree): 结点的子树数目
3.树的度: 树中各结点的度的最大值
4.n度树: 度为n的树
5.叶子(终端结点): 度为0的结点
6.分枝结点(非终端结点,非叶子): 度不为0的结点
7.双亲(父母,parent)和孩子(儿子,child) : 若结点C是结点P的子树的根,称P是C的双 亲,C是P的孩子。
8.结点的层(level): 规定树T的根的层为1,其余任一结点的 层等于其双亲的层加1。
9.树的深度(depth,高度): 树中各结点的层的最大值。
10.兄弟(sibling): 同一双亲的结点之间互为兄弟。
11.堂兄弟: 同一层号的结点互为堂兄弟
12.祖先: 从树的根到某结点所经分枝上的所有结点为该 结点的祖先。
...
内部排序
概述1.排序:将文件或表中的记录,通过某种方法整理成按 关键字大小次序排列的处理过程。 假定n个记录的文件为 (R1,R2,…,Rn) 对应的关键字为 (K1,K2,…,Kn) 则排序是确定如下一个排列 p1,p2,…,pn 使得: Kp1≤Kp2≤…≤ Kpn 从而得到一个有序文件或表中的记录 (Rp1,Rp2,…Rpn)
2.什么是排序的稳定性 假设在待排序的文件中,存在两个具有相同关键字的记 录R(i)与R(j),其中R(i)位于R(j)之前。在用某种排序法排序 之后,R(i)仍位于R(j)之前,则称这种排序方法是稳定的;否 则,称这种排序方法是不稳定的。
3.内部排序和外部排序
内部排序(内排序)—-在计算机内存中进行的排序
外部排序(外排序)—-借助计算机外存进行的排序
插入排序直接插入排序首先,将初始文件中的记录r[1]看作有序子文件; 第1遍:将r[2]插入前面有序子文件中,得到3个记录的有序子文件。 第2遍:将r[3]插入前面有序子文件中,得到3个记录的有序子文件。 以此类推,依次插入r[4],…,r[n],最后得到n个记录的递增有序文件。
123456789 ...
链表面试题目
反转链表
方法一:迭代注意对于反转链表涉及到三个节点,因此需要设置3个指针,prev初始化为nullptr,curr初始化为head,而currnext指针在while迭代过程中初始化即可,另外在每一次迭代中仅需将curr节点指针反转即可
123456789101112ListNode* reverseList(ListNode* head) { ListNode* prev=nullptr; ListNode* curr=head; ListNode* cnext; while(curr!=nullptr){ cnext=cnext->next; curr->next=prev; prev=curr; curr=cnext; } return prev;}
方法二:递归这个思路是类似于后序遍历,从后往前操作节点
123456789ListNode* reverseList(ListNode* head) { if (!head ...
计算机网络自顶向下第一章
什么是因特网我们可以从两个角度来回答这个问题:其一,我们能够描述因特网的具体构成,即构成因特网的基本硬件和软件组件;其二,我们能够根据为分布式应 用提供服务的联网基础设施来描述因特网.
组成描述因特网是一个世界范围的计算机网络,这意味着它互联了数以亿计的计算设备(不仅仅是计算机哦);这些设备包括但不限于传统PC、工作站以及所谓的服务器。现在有更多的设备加入到因特网中,比如便携式计算机、电视机、汽车、传感器等。
主机或者端系统:用因特网的术语来说,所有连入因特网的设备(如便携机、智能手机、平板电脑、电视、游戏机、温度调节装置、家用安全系统、家用电器、手表、眼镜、汽车、运输控制系统等)
通信链路 光纤、同轴电缆、无线电、卫星,传输速率 =带宽(bps)
分组交换设备转发分组 (packets),路由器和交换机 端系统通过通信链路和分组交换机连接到一起。
端系统之间发送数据时,发送端系统将其数据分成一段一段,然后加上必要的信息后形成一个个的数据包,这个数据包用术语来说叫做分组。于是分组==用户数据+必要信息。链路系统就是用来传输分组的。分组到达接收端系统后,接收端系统将根据必要信息来抽取用 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
排序算法
排序的基本概念排序的一般定义排序是计算机内经常进行的一种操作,其目的是将一组 “无序” 的数据元素调整为“有序”的数据元素。
例如 : 将下列关键字序列52, 49, 80, 36, 14, 58, 61, 23, 97, 75调整为:14, 23, 36, 49, 52, 58, 61,75, 80, 97
排序的数学定义 假设含 n 个数据元素的序列为 : { R1,R2,…,Rn } , 其 相应的关键字序列为 : { K1,K2, …Kn};这些关键字相互之间可以进行比较,即 : 在它们之间存在着这样关系 :Kp1 <= Kp2 <= … <= Kpn按此固有关系将上式记录重新排列为 : {Rp1,Rp2,…,Rpn }的操作称为排序。
关键字是编号,按照编号排序。
关键字是总评,按照总评排序。
但是按总评排序后为什么张无忌的排名比郭靖靠前呢 ?
排序的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。. 在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。
排序 ...