数据结构和算法
aimsgmiss
开开心心,每天进步一点点~~!
展开
-
背包问题(0~1)
#define kProductNum 12void knapsackProblem(){ int value[] = {0,10000,2000,2550,2900,500,4000,3000,22000,5894,2455,5885}; int weight[] = {0,1,3,4,5,1,2,3,1,3,1,2}; int v[kProductNum][kProductNum] = {0}; int path[kProductNum][kProductNum] =.原创 2021-07-26 19:29:36 · 135 阅读 · 0 评论 -
迪杰斯特拉算法(Dijkstra) ES6实现
class Graph{ constructor(props){ this.edges = [ [65535,65535,65535,65535,65535,65535,65535], [65535,65535,65535,65535,65535,65535,65535], [65535,65535,65535,65535,65535,65535,65535], [655...原创 2021-07-26 19:20:58 · 147 阅读 · 0 评论 -
对字符串 “ABC” 所有子集的列举
/*** * 引用:http://data.biancheng.net/view/34.html * 对字符串 “ABC” 所有子集的列举(使用回溯法-这里实际上是二叉树的深度优先遍历) *从集合的开头元素开始,对每个元素都有两种选择:取还是舍。当确定了一个元素的取舍之后,再进行下一个元素,直到集合最后一个元素。其中的每个操作都可以看作是一次尝试,每次尝试都可以得出一个结果。将得到的结果综合起来,就是集合的所有子集。 * */void allPermutation(char* str,NSS.原创 2021-06-25 17:00:08 · 1634 阅读 · 0 评论 -
c语言单链表操作,编程关键是获取别人的思想
#include#include#includetypedef char ElemType;typedef int Integer;#define MAXSIZE 10#define N sizeof(struct Node)typedef struct Node{ Integer data; struct Node *next;}LinkList原创 2013-06-16 22:16:52 · 788 阅读 · 0 评论 -
你有1元、5元、7元三种硬币,求一种方法,用最少的硬币凑出m元
转载:https://blog.csdn.net/wjheha/article/details/77924642/* * 代码:学习动态规划的思想,采用自底向上,用迭代去实现。 * * 硬币数目的最小单元是1、3、5,凑一次必须使用三个单元之一,假设 * 钱的数目为m,则 m = 1 * x + 3 * y + 5 * z; * * 如果要凑够0元,只有一种方案,使用0个硬币...转载 2018-08-20 11:41:09 · 3430 阅读 · 0 评论 -
二分排序
二分排序:1、先将数据进行二分组,将组分到不能再分为止;2、将组分到不能再分为止的,两块合并成一块,并且排序; #include<stdio.h> #include<string.h> #include<stdlib.h> void binary_merge_sort(int *vector,int l...原创 2017-11-03 10:08:04 · 852 阅读 · 0 评论 -
堆排序
堆排序之大根堆:1、先创建一个大根堆,位于节点数据大于或者等于左右孩子节点数据;2、将位于根节点的数据和数组末尾索引的数据进行交换,然后维持大根堆的特性(如果需要交换数据);3、将末尾索引减一,然后重复第2步骤; #include<stdio.h> #include<string.h> #include<stdlib.h>...原创 2013-04-14 18:41:22 · 1024 阅读 · 0 评论 -
剑指offer算法题
typedef struct listNode{ int val; struct listNode* next; struct listNode* randomNext;}listNode;#pragma mark 测试克隆void test(listNode* head){ std::stack<listNode*> stack; ...原创 2019-08-08 11:05:39 · 191 阅读 · 0 评论 -
AVL树
#pragma mark AVL tree(平衡二叉树)#define avl_node_len(p) (p == NULL ? 0 : (p) -> height)typedef struct _avl_node{ int key; struct _avl_node* left; struct _avl_node* right; int ...原创 2019-09-05 15:58:38 · 125 阅读 · 0 评论 -
不一样的直接插入法排序笔记
#include #define MAX_SIZE 10typedef int ElemType;using namespace std;typedef struct { ElemType key; int data; }RecType;int main(int argc, const char * argv[]){ Re原创 2013-12-03 18:43:52 · 710 阅读 · 0 评论 -
设计包含min函数的栈
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。原创 2017-02-16 17:20:31 · 309 阅读 · 0 评论 -
把二元查找树转变成排序的双向链表
.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10/ \614/ \ / \48 12 16转换成双向链表4=6=8=10=12=14=16。void insertOrderToQueue(TN* head,std::queue<TN*>&...原创 2017-02-16 14:56:03 · 313 阅读 · 0 评论 -
二叉树创建错误笔记
简单笔记哈,错误以免再次犯错误:typedef struct BITree{ char data; struct BITree *left; struct BITree *right;}BITree ,*BITreePtr;//遍历二叉树,递归时容易出现的错误/*当第一次将左指针参数传入时,形参指针tree指向了tree->left 后tree=(B原创 2013-12-01 11:38:06 · 733 阅读 · 0 评论 -
有趣的汉诺塔
递归有趣,汉诺塔也有趣原创 2013-12-01 11:46:30 · 680 阅读 · 0 评论 -
双链表简单操作笔记
写了那么久,删除有点可惜#includeusing namespace std;typedef struct DoubleLink{ int data; struct DoubleLink *pre,*next;}DoubleLink;//创建一个双向链表的时候不能插入重复的元素;length为创建元素个数DoubleLink *createDoubleL原创 2013-12-16 15:10:08 · 654 阅读 · 0 评论 -
(广度、深度)遍历二叉树
闲着无聊,偶然看到广度遍历二叉树(采用队列的结构),而深度遍历二叉树采用(栈的结构);根据广度遍历二叉树的原理,自己仔细想了哈!没有参考资料(采用栈的存储方式)对二叉树进行深度遍历#includeusing namespace std;typedef int ElemType;//二叉树的节点typedef struct BiTNode{ ElemTyp原创 2013-12-16 15:03:23 · 739 阅读 · 0 评论 -
Shell排序还可以这样写
明白了原理之后自己写了个希尔排序,这个Shell排序的时间复杂度貌似有点大;感觉有点复杂,还好能够运行#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){ int a[]={10,9,8,7,6,5,4,3,2,1,13,11,78}; int length=sizeof(a)/sizeof(int); i...原创 2013-12-21 19:14:21 · 658 阅读 · 0 评论 -
快速排序
快速排序:1、选择一个基点(通常选取某一块中第一个元素),一趟排序下来,左边的所有数据小于基点,右边的所有数据大于基点;2、使用递归排序; void quick_sort(int *vector,int low,int high){ if (low >= high) { return; } int ind...原创 2017-02-05 15:26:22 · 305 阅读 · 0 评论 -
基本入门的顺序表插入,删除,获取
面试的打击蛮大的,最基本的数据结构和算法都不会,哎!下定决心好好学习一哈这门课程原创 2013-11-27 14:24:32 · 691 阅读 · 0 评论