- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 任意有根树遍历
左孩子右兄弟的存储方式typedef struct tree_node{ ElemType data; tree_node *left_child; tree_node *right_sibling; } tree_node, *ptree_node;先根遍历 PREORDER(T)if T == NIL return NIL print(T) for p = T.
2017-05-31 11:47:06 410
原创 二叉树遍历
二叉链表typedef struct Node{ ElemType data; struct Node *lchild, *rchild; }Binode, *Bitree;注意点: 1)已知 前序遍历序列 和 中序遍历序列,可以唯一确定一颗二叉树 2)已知 中序遍历序列和 后序遍历序列,可以唯一确定一颗二叉树 而已知 前序和后序 是不能确定一颗二叉树的二叉树的遍历:
2017-05-27 17:25:52 418
原创 实现对一个含n个元素的单链表的逆转.要去除存储链表本身所需的空间外,该过程只能使用固定大小的存储空间.
这个逆转很简单,流程就是旧单链表从头部删除结点,然后将该结点从新单链表头部插入.设LSRC为原来旧单链表的头部,LDEST为逆转后的链表的头部. REVERSE(LDEST, LSRC)while LSRC.head != NIL x = LSRC.head LSRC.head = x.next x.next = LDEST.next LDEST.head = x
2017-05-27 15:24:10 352
原创 链表
链表链表分单向链表,双向链表 下面我看一下双向链表(最常用如图: (图一)双向链表查询查询程序LIST_SEARCH(L,k)找数据为k的元素在L里面,通过一个简单线性查找,返回一个指向这个元素的指针。如果k没有出现在出现在这个列表,则这个程序就会返回空(NIL)。LIST_SEARCH(L, k)x = L.head while x != NIL and x.key != k x =
2017-05-22 18:32:07 569
原创 栈和队列
栈和队列都是动态集合,且在其上进行DELETE操作所移除的元素都是预先设定的。 在栈stack中,被删除的是最近插入的元素:栈实现的是一种后进先出(last-in, first-out, LIFO)策略。 在队列(queue)中,被删去的总是在集合中存在时间最长的那个元素:队列实现的是一种先进先出(first-in, first-out, FIFO)策略。简单的数组实现栈和队列.
2017-05-07 21:52:18 1256
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人