09 2017 档案

摘要:听说有十大排序算法,先学习一下快速排序和计数排序算法。 一:快速排序 快速排序主要就是每一个找到当前取出来的标尺的数的位置,然后把小于它的数放在左边(从小到大排),把大于它的数放在右边。然后利用递归分左右继续找位置放数字,这个过程有点类似之前的根据前序和中序找后序的题目。递归的出口就是当只有一个数的 阅读全文
posted @ 2017-09-30 16:10 Pumpkin0227 阅读(422) 评论(0) 推荐(0)
摘要:#include #define SIZE 100000 typedef struct node{ int key; struct node* next; struct node* pre; }Node; Node HashTable[SIZE + 10]; Node HashPool[SIZE + 10]; int HashIndex = 0; Node* get... 阅读全文
posted @ 2017-09-26 21:04 Pumpkin0227 阅读(206) 评论(0) 推荐(0)
摘要:栈和队列主要的操作就是push和pop,栈的特点是“先入后出”,”从嘴里进进出出“。队列和实际站的队列差不多,从尾部插入,从队头出。”从后面进从嘴里出“ 嘿嘿嘿。。。 2017年9月30日11:49:33更新 要注意的是top,head,tail都指向当前要放入的位置。 比如入栈的时候top++是在 阅读全文
posted @ 2017-09-26 19:10 Pumpkin0227 阅读(962) 评论(0) 推荐(0)
摘要:使用了NIL来当做链表的头和尾,构建的时候也用插入函数插入,在遍历的时候只要判断当前的指针指向的内容是不是NIL即可。 关于NIL节点的使用: 关于内存池的使用: 插入的时候对于四个指针进行操作: 2017年9月30日10:58:50更新: 关于插入的时候四个指针操作的顺序可能造成的BUG 四个指针 阅读全文
posted @ 2017-09-26 16:51 Pumpkin0227 阅读(368) 评论(0) 推荐(0)
摘要:二叉树主要有两种实现方式,数组形式和链表形式,其中数组形式是利用完全二叉树的性质5: 来实现的,左边的节点的下标是根节点的下标的2倍,右边的节点的下标是根节点下标的2倍加1。千万要记住这个只能用于完全二叉树(满二叉树其实就是更加完美的完全二叉树),上篇文章写的那种多杈树是用不了的,一般的二叉树也只是 阅读全文
posted @ 2017-09-21 20:11 Pumpkin0227 阅读(1744) 评论(0) 推荐(0)
摘要:#include using namespace std; //提交时记得删掉 #define MAX_ID 100 #define MAX_STR_LENGTH 3000 #define MAX_IMAGE_HEIGHT 50 #define MAX_IMAGE_WIDTH 50 #define MAX_SCREEN_HEIGHT 1000 #defi... 阅读全文
posted @ 2017-09-21 16:37 Pumpkin0227 阅读(217) 评论(0) 推荐(0)
摘要:分支任意的树构造的方法主要有两种,邻接矩阵和兄弟链表。邻接矩阵主要用于输入的范围很小的情况,因为矩阵反应的是对应情况,比如树的每一个节点都给与对应顺序的编号的话,如果有100个输入,就需要一个100*100的数组来存储联接关系。 链表的形式一般用于输入量很大的情况,可以很方便的适应。(需要仔细体会一 阅读全文
posted @ 2017-09-21 11:39 Pumpkin0227 阅读(586) 评论(0) 推荐(0)
摘要:用的是POJ3481的例子:对应PPT注意一下其中的写法#include #define MAX 100 struct Node { int key;//这里的key就是优先级P int num;//这里的num代表client的标号K Node* parent; Node* leftChild; Node* rightChild; Node(... 阅读全文
posted @ 2017-09-18 21:51 Pumpkin0227 阅读(128) 评论(0) 推荐(0)
摘要:#include #include typedef struct node { int id; int pri; struct node *left; struct node *right; struct node *parent; }heapDataType; typedef struct { bool s[20]; int t... 阅读全文
posted @ 2017-09-16 14:07 Pumpkin0227 阅读(165) 评论(0) 推荐(0)
摘要:#include using namespace std; //根据需求调整大小 #define SIZE 10 typedef struct Node{ int K; int P; }Node; Node big[SIZE]; Node small[SIZE]; int big_size=1; int small_size=1; void swap(Node x, N... 阅读全文
posted @ 2017-09-14 23:37 Pumpkin0227 阅读(166) 评论(0) 推荐(0)
摘要:POJ3481 阅读全文
posted @ 2017-09-14 21:57 Pumpkin0227 阅读(178) 评论(0) 推荐(0)
摘要:二叉树的经典面试题,根据前序和中序求后序遍历。涉及到了递归算法的书写,这里我们只要根据当前的状态来写递归时候的变量就可以。 写递归的时候需要做的是先分析当前的问题是什么,我们有什么,要得到什么。递归的过程肯定是把有的东西不断的传入,比如这道题有的东西就是前序和中序的字符串,要求的是后序。写递归的时候 阅读全文
posted @ 2017-09-13 12:14 Pumpkin0227 阅读(241) 评论(0) 推荐(0)
摘要://最快的方式查找一个链表中的最中间节点#include #define SIZE 100000 typedef struct Node{ int data; struct Node* next; struct Node* prev; }Node; Node f[SIZE]; int index = 0; Node* head; Node* getnode(){ ... 阅读全文
posted @ 2017-09-09 00:15 Pumpkin0227 阅读(172) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;#define LISTSIZE 1000//LinkedList APItypedef struct ListNode { int key; struct ListNode * next; struct ListNode 阅读全文
posted @ 2017-09-05 16:29 Pumpkin0227 阅读(143) 评论(0) 推荐(0)