
数据结构与算法分析
文章平均质量分 60
duangyhn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
queue c 实现
不知道有没有用,反正记录下来#ifndef _Queue_H #define _Queue_H struct QueueRecord; typedef struct QueueRecord * Queue; typedef int Item; int isFull(Queue Q); int isEmpty(Queue Q); Queue initial(int maxEle); void e原创 2017-03-29 17:38:18 · 719 阅读 · 0 评论 -
avl树 C实现
头文件: #ifndef _Avl_Tree_H #define _Avl_Tree_H struct AvlNode; typedef struct AvlNode *AvlTree; typedef struct原创 2017-04-04 15:44:49 · 385 阅读 · 0 评论 -
归并排序 快速排序
归并排序 #include #include static void merge(int arr[],int tmpArr[],int lpos,int rpos,int rend){ int lend,start,num,i; lend=rpos-1; start=lpos; num=rend-lpos+1; while(lpos<=lend && rpos<=rend){原创 2017-04-15 18:54:39 · 304 阅读 · 0 评论 -
插入排序、冒泡排序、希尔排序、堆排序、计数排序、基数排序
复习一下插入排序、冒泡排序、希尔排序、堆排序、计数排序、基数排序 插入排序 平均复杂度 O(n^2),最好情况为O(N),且是稳定的。 插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,也就是第一个元素(默认它有序)。 冒泡排序 平均复杂度 O(n^2),最好情况为O(N),且是稳定的。 它从左到右依次交换元素,若在一次循环中没有出现交换...原创 2017-04-15 16:33:47 · 327 阅读 · 0 评论 -
散列 开放定址法 C实现
头文件 #ifndef _open_hash_h #define _open_hash_h #define MINNUM 11 struct Node; struct HashTbl; enum kind {legeal,empty,deleted}; typedef struct Node Cell; typedef struct HashTbl *HashTable; typedef i原创 2017-04-06 14:32:25 · 605 阅读 · 0 评论 -
不相交集 C实现
不相交集基本历程 头文件 #ifndef _disjSet_H #define _disjSet_H typedef int* disjSet; void initial(disjSet S,int size); void setUnion(disjSet S,int root1,int root2); int find(disjSet S,int i); #endif 源文件 #i原创 2017-04-19 11:14:39 · 332 阅读 · 0 评论 -
分离连接法 散列
最简单的一个散列表示 头文件 #ifndef _Hash_H #define _Hash_H struct ListNode; struct HashTbl; typedef struct ListNode *Position; typedef struct HashTbl *HashTable; typedef int Item; HashTable initial(int table原创 2017-04-04 20:08:01 · 320 阅读 · 0 评论 -
二叉树 C实现
头文件 #ifndef _Bin_tree_H #define _Bin_tree_H struct TreeNode; typedef struct TreeNode *Position; typedef struct TreeNode *BinTree; typedef int Item; BinTree makeEmpty(BinTree T); Position find(Item原创 2017-04-03 21:04:08 · 389 阅读 · 0 评论 -
二项队列 C语言
实现了二项队列的基本功能,参考书籍 数据结构与算法分析 C描述 头文件 #ifndef _BINQUEUE_H #define _BINQUEUE_H struct Binnode; struct Collection; typedef struct Collection *BinQueue; typedef struct Binnode *BinTree; typedef int Ite原创 2017-04-11 14:03:04 · 897 阅读 · 0 评论 -
stack c 实现
#ifndef _Stack_H #define _Stack_H struct Node; typedef struct Node *PtrToNode; typedef PtrToNode Stack; typedef PtrToNode Position; typedef int Item; int isEmpty(Stack stack); Stack createStack(void原创 2017-03-29 17:35:16 · 426 阅读 · 0 评论 -
双端队列 C 实现
双端队列可以前插后插前删后删,通过数组实现,这里给出基本功能: 头文件如下:#ifndef _Double_Queue_H #define _Double_Queue_H struct PtrToNode; typedef struct PtrToNode *double_Queue; typedef int Item; double_Queue initial(void); int isE原创 2017-03-31 14:41:49 · 4723 阅读 · 3 评论 -
list c实现
仅仅作为我的代码纪念,没有任何注释,代码风格也很差//list.h#ifndef _List_H #define _List_H typedef int Item; struct Node; typedef struct Node *PtrToNode; typedef PtrToNode List; typedef PtrToNode Position; List initialLis原创 2017-03-29 17:30:45 · 999 阅读 · 0 评论 -
优先队列 C实现
二叉堆基本操作呈上 头文件 #ifndef _Heap_H #define _Heap_H #define MIN 0 //假设插入值均严格大于0 struct HeapStruct; typedef struct HeapStruct *Heap; typedef int Ite原创 2017-04-08 15:36:44 · 662 阅读 · 0 评论 -
左式堆 C实现
left_heap.h #ifndef _Left_Heap_H #define _Left_Heap_H typedef int Item; typedef struct Left_Heap{ struct Left_Heap *left; struct Left_Heap *right; Item item; int Npl; } *heap; heap initial(v原创 2017-04-09 16:54:52 · 333 阅读 · 0 评论 -
二叉树那些非递归遍历
#include<iostream> #include<stack> using namespace std; class TreeNode{ public: TreeNode(char val):val(val),left(nullptr),right(nullptr){} char val; TreeNode* left,*right; }; void pr...原创 2018-09-05 16:15:14 · 168 阅读 · 0 评论