数据结构经验

数据结构这一块内容主要有数组、数组队列、链表、树(二叉树、哈弗曼二叉树)。
1、(概括地说)数组队列和链表都是可以用来实现保存多组数据并随意插入删除的数据结构。而树是一种更加灵活的数据结构,更加像是特殊的链表。
2、数组队列就是通过队列的方式将长度固定的数组赋予插入删除数据的功能,具体通过新定义数组替换的方法实现。
3、链表则是相对陌生的一种数据结构,需要引入“节点”的概念,每一个节点都会分为两部分,一部分是数据域,一部分是引用域。数据域是用来存储这个节点所代表的数据的,一般来说是Object类下任意类型的对象都可以。而引用域下则是规定了这个节点与其他之间的节点。在单向链表中,仅仅需要规定本节点与下一个节点的连接关系,很简单。而在复杂的二叉树甚至是更广泛的树中,这个引用域就显得很重要,比如二叉树,每一个父节点要指向两个子节点,且在哈弗曼二叉树中,子节点要根据数据的权重分左子节点和右子节点。
4、总结链表的时候,树其实和我们小学学统计数学所用的树状图有些相似。功能上都是用来存放数据,且上一级的节点里的数据与这一级的节点之间存在某种意义上的“包含”关系。而哈弗曼二叉树又是一种非常特殊的树,要求权重之和最小,也就是每次都要权重最小的两个先组成父节点。
5、在链表或者数组中,简单的加入或者删除方法并不难完成,而当需要用数组队列或者链表存储大批量数据时,遍历整个数组的方法对软件性能的影响就至关重要。毕竟,如果插入或者删除一个数据需要遍历大半个链表,那么执行效率将会非常低。因此简单的改进方法是,将链表设置为双向链表。这样,在遍历链表时,就可以通过判断指定位置与长度的一半的大小来判断从头开始还是从后往前遍历链表。

你可能感兴趣的:(数据结构)