数据结构
yangalbert
这个作者很懒,什么都没留下…
展开
-
四叉树递归遍历叶节点并输出至数组
#include #include #include #define CHILD_NUM 4typedef int Datatype; // 节点数据类型typedef struct QuadTree* ChildType; // 指向孩子节点指针int max_leaf_num = 1; // 最大叶节点个数原创 2012-03-29 00:14:10 · 4610 阅读 · 0 评论 -
二叉查找树实现(C语言版本)
SearchTree.h 文件#ifndef __Search_TREE_H__#define __Search_TREE_H__// 二叉查找树#include "DataType.h"typedef struct SearchTreeNode* SearchTreePt;typedef struct SearchTreeNode SearchTree;struct S原创 2012-04-04 20:28:32 · 896 阅读 · 1 评论 -
AVL平衡二叉查找树实现(C语言版本)
AVT树是每个节点的左子树和右子树的高度最多差 1 的二叉查找树。(1)AVLTree.h 文件#ifndef __AVL_TREE_H__#define __AVL_TREE_H__// AVL Tree: Adelson-Vlskii and Landis// 带有平衡条件的二叉查找树// AVT树是每个节点的左子树和右子树的高度最多差 1 的二叉查找树#includ原创 2012-04-04 20:34:55 · 1093 阅读 · 0 评论 -
判断单链表是否有环
链表结构:struct List{ int data; List* next;};(1)判断单链表是否有环采用追赶法,设置两个指针p和q,从链表表头开始,p每一步走两个节点,q每一步走一个节点,如果链表有环则p和q必相遇。代码如下// 判断链表是否有环,时间复杂度O(n),空间复杂度O(1)List* hasLoopInList( List* head )原创 2012-03-23 10:45:01 · 960 阅读 · 0 评论 -
单链表快速排序算法实现
单链表结构:typedef int ElemType;typedef struct ListNode* List;struct ListNode{ ElemType key List next;};实现代码如下:void QuickSort( List head, List tail ){ if ( head->next == tail || he原创 2012-05-17 20:39:13 · 7822 阅读 · 8 评论 -
归并排序:数组和单链表实现
1. 数组的归并排序// 归并排序的递归调用void mergeSort(int* A, int beg, int end, int* B){ if ( beg >= end ) { return; } int mid = (beg + end ) / 2; mergeSort( A, beg, mid, B); mergeSort( A, mid+1, end, B)原创 2012-09-03 13:29:54 · 3739 阅读 · 0 评论 -
暴雪Hash表实现与测试
StringHash.H#ifndef __STRING_HASH_H__#define __STRING_HASH_H__// Definition of MPQHashTablestruct MPQHashTable{ long nHashA; long nHashB; bool bExists;};#define CRYPT_TABLE_LENGTH (256原创 2012-09-19 16:38:24 · 1727 阅读 · 0 评论