算法数据结构_网络编程

4/19/2019 8:17:10 AM


今日概要

一、数据结构(树和哈希)
二、网络编程

一、数据结构(树和哈希)

<1>二叉树:有序

	   根节点存储的数据大于左子树,小于右子树		
	   
遍历:
	先序遍历
	中序遍历
	后序遍历	

平衡二叉树:
	概念:
		又称为AVL树,左子树和右子树 也是平衡二叉树。
	特点:
		左子树和右子树的深度之差的绝对值不超过1
	
B-树:磁盘的IO效率低,减少操作次数
	多叉树,符合平衡二叉树的特点	
	
	平衡多路查找树,存在m阶B树
		每个节点包含孩子的个数为m
		根节点至少含有两个孩子
		... ...

MySQL数据库中的索引使用的是:B-树、Hash索引

<2>散列(哈希表)

数据结构:数组    +   链表
		高速定位  + 高性能处理

哈希表:数组+单向链表
存数据:1. 定位数据在hash桶中的位置,loc =  hash(数据)%len
	   2. 将数据存储在当前桶中的链表中
	 
从新散列:rehashing,扩大数组的容量,对所有的数据重新存放	
冲突:将两个不同的数据定位到一个哈希桶中

负载因子:数组填满的程度
		75%		

自动扩容:扩大数组的容量

jdk中HashMap:
	初始容量(hash桶的个数):16 
	扩充算法: 一倍
	负载因子: 75%
	jdk1.8中HashMap的升级: 对象数组+链表  =====> 对象数组 + 链表 + 红黑树
		每一个桶中的链表长度大于8,转换数据格式,将单向链表转换成平衡二叉树(红黑树)

二、网络编程

1.1 计算机网络
	略
1.2 网络协议
	不同机器间实现数据交互所遵循的规则。(传输速率,出错控制,传输控制.... ....)

1.3 七层协议 
	应用层    表示层    会话层    传输层   网络层  数据链路层  物理层

	 http                         tcp      ip
	
	发送方: 应用层----->物理层
	接收方: 应用层<-----物理层

	tcp的三次握手:

算法数据结构_网络编程_第1张图片

1.4 ip+端口号
	ip表示一台计算器
	端口号:定位一个进程

1.5 基于TCP的Socket编程
	流程
	实现单聊和群聊(多线程)	

作业

1. 简单二叉树
2. 单聊 、 群聊	

你可能感兴趣的:(Java)