随笔分类 - 数据结构
摘要:先上代码: 这个算法中基本的操作是合并两个已排序的表。 基本的合并算法是: 取两个输入数组A和B,一个输出数组C,以及三个计数器Aptr、Bptr、Cptr,它们初始置于对应数组的开始端。A[Aptr]和B[Bptr]中的较小者被拷贝到C中的下一个位置,相关的计数器向前推进一步。当两个输入表有一个用
阅读全文
摘要:介绍B树之前,先介绍树的几个概念。 Degree The number of subtrees of a node. Height of node The height of a node is the number of edges on the longest path between that
阅读全文
摘要:问题: 给定一个已排序的双向链表,向其中插入一个元素。solution:struct ListNode { int val; ListNode *prev; ListNode *next;};int insert(ListNode *head, int value){ Li...
阅读全文
摘要:直接上代码了struct BTNode { int val; BTNode *lchild; BTNode *rchild; BTNode(int x): val(x), lchild(NULL), rchild(NULL){}};BTNode* rebuildBinTr...
阅读全文
摘要:这道题面试的时候经常遇到,特此收录。全部代码来自《剑指offer》。template class CQueue{public: CQueue(void); ~CQueue(void); void appendTail(const T &node); T deleteHe...
阅读全文
摘要:结构定义: 1. 头插法创建链表 ListNode* createListFromHead() { ListNode *list = new ListNode; list->next = NULL; ListNode *s; int x; while (cin >> x) { s = new Lis
阅读全文
摘要:题目描述: 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。 solution:
阅读全文
摘要:使用递归可以非常方便地实现二叉树的遍历。如果不使用递归呢,请听我一一道来。首先给出二叉树遍历的递归版本:struct BTNode { char data; BTNode *lchild, *rchild;};void visit(BTNode *p){ coutdatalch...
阅读全文
摘要:快速排序 OR 插入排序 归并排序 堆排序 选择排序 冒泡排序 总结: 参考资料: http://en.wikipedia.org/wiki/Sorting_algorithm
阅读全文

浙公网安备 33010602011771号