数据结构
米兰的小铁匠1943
这个作者很懒,什么都没留下…
展开
-
go语言实现--双向循环链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 代码如下: package doubleLinkedList import ( "errors" "fmt" ) type ElemType interface{}...原创 2018-05-27 13:08:10 · 1157 阅读 · 0 评论 -
go语言实现--单链表
复习了一下程杰老师写的《大话数据结构》,书里是代码是C语言写的,我用golang把它们重新实现一遍以及做一点变动。 顺序表与链表是非常基本的数据结构,它们可以被统称为线性表。 线性表是由 n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1] 组成的有限序列。顺序表和链表,是线性表的不同存储结构。它们各自有不同的特点和适用范围。 下图摘自《大话数据结构》 ...原创 2019-03-11 00:27:00 · 1962 阅读 · 1 评论 -
go语言实现--二叉树
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0...原创 2019-03-10 23:39:10 · 9474 阅读 · 4 评论