Data Structure
文章平均质量分 62
LarryInTokyo
这个作者很懒,什么都没留下…
展开
-
【LeetCode】Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,3,2].Note: Recursive solutio原创 2014-03-13 21:06:44 · 626 阅读 · 0 评论 -
图(有向图)的邻接表表示 C++实现(遍历,拓扑排序,最短路径,最小生成树) Implement of digraph and undigraph using adjacency list
本文实现了有向图的邻接表表示,并且实现了从创建到销毁图的各种操作。以及深度优先遍历,广度优先遍历,Dijkstra最短路径算法,Prim最小生成树算法,拓扑排序算法。可结合我的另一篇文章(有向图,无向图的邻接矩阵表示)看。PS: 等有时间了作详细的讲解。原创 2014-04-05 22:44:14 · 2299 阅读 · 0 评论 -
图(有向图,无向图)的邻接矩阵表示C++实现(遍历,拓扑排序,最短路径,最小生成树) Implement of digraph and undigraph using adjacency matrix
本文实现了有向图,无向图的邻接矩阵表示,并且实现了从创建到销毁图的各种操作。以及两种图的深度优先遍历,广度优先遍历,Dijkstra最短路径算法,Prim最小生成树算法,有向图的拓扑排序算法。 通过一个全局变量控制当前图为有向图还是无向图。若为无向图,则生成的邻接矩阵是对称的,有向图则不对称。 PS: 等有时间了作详细的讲解。原创 2014-04-05 16:49:29 · 4383 阅读 · 0 评论 -
双向链表的C++实现 Implement of Doubly Linked List
实现了双向链表的以下功能 头部插入节点 尾部插入节点 n-th位置插入节点 n-th位置删除节点 清空 获取长度 查找某个值判断是否为空原创 2014-03-31 16:25:09 · 1518 阅读 · 0 评论 -
单链表的C++实现 Implement of Linked List
实现了单链表的以下功能 头部插入节点 尾部插入节点 n-th位置插入节点 n-th位置删除节点 清空 获取长度 查找某个值判断是否为空#include using namespace std;struct LinkedListNode{ int val; LinkedListNode *next;};void AddAtH原创 2014-03-13 23:00:19 · 2414 阅读 · 0 评论 -
字典树的C++实现 Implement of trie tree
Trie,字典树,又称单词查找树、前缀树,是一种哈希树的变种。应用于字符串的统计与排序,经常被搜索引擎系统用于文本词频统计。 性质:1.根节点不包含字符,除根节点外的每一个节点都只包含一个字符。2.从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。3.每个节点的所有子节点包含的字符都不相同。优点是查询快。对于长度为m的键值,最坏情况下只需花费O(m)的时间原创 2014-04-03 01:42:11 · 8035 阅读 · 1 评论 -
AVL树的C++实现 Implement of AVL tree
AVL是一种自平衡的二叉查找树。不同于普通的二叉查找树之处在于:每个节点的左右子树高度差最多为1,故每个节点多了一个高度(height)属性。其实现难点在于插入和删除时要检测节点高度差是否满足上述条件,当超过1时,分四种情况进行调节。case1:左儿子的左子树插入值 left-leftcase2:左儿子的右子树插入值 left-rightcase3:右儿子的左子树插入值 rig...原创 2014-03-31 22:51:13 · 3275 阅读 · 0 评论 -
用单链表实现栈 Linked List implementation of stacks
struct Node{ int data; Node* next;};Node* top = NULL;void Push(int x){ Node* tmp = (Node*)malloc(sizeof(Node)); tmp->data = x; tmp->next = top; top = tmp;}void Pop(){ if(top == NULL)原创 2014-03-13 23:01:01 · 809 阅读 · 0 评论 -
用数组实现栈 Array implementation of stacks
#include using namespace std;#define MAXSIZE 4int A[MAXSIZE];int top = -1;void Push(int x){ if(top == MAXSIZE-1) return; A[++top] = x;}void Pop(){ if(-1 != top) top--;}int Top(){ i原创 2014-03-13 23:01:15 · 859 阅读 · 0 评论 -
颠倒单链表 Reverse the Linked List
//use iterativevoid ReverseLinkedList(Node* head){ if(head == NULL) return; Node* current, *pre, *next; current = head; pre = next = NULL; while(NULL != current) { next = current->next;原创 2014-03-13 22:57:45 · 1324 阅读 · 0 评论 -
二分查找树的C++实现 Binary Search Tree(BST)
用C++实现了二叉查找树的创建插入删除遍历(宽度优先和三种深度优先[前序,中序,后序])查找某值查找最大值和最小值清空复制二叉树(深复制)#include #include using namespace std;struct BSTNode{ int val; BSTNode *left; BSTNode *right;};/* ver原创 2014-03-13 19:14:43 · 3379 阅读 · 0 评论