![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
-肉松面包-
这个作者很懒,什么都没留下…
展开
-
写链表时的问题——函数参数
原程序#include#include#includeusing namespace std;typedef struct _ListNode{int data;_ListNode* next;} ListNode;ListNode* CreateList(){ListNode* n原创 2014-11-16 20:02:49 · 1393 阅读 · 3 评论 -
哈希表
哈希表是一种很牛叉的用于查找的数据结构,主要原理是通过数据的关键值进行查找和访问,最简单的不如在字符串中查找指定字符的问题,就是利用字符的ASCII码这个关键之进行的查找与访问。比如一个数字可以通过其个位数这个key值来散列,一个字符串可以用他的每个字符的ASCII码值之和(再取余)来散列,电话号码可以用他的后四位来散列,汉字可以用它的笔画数来散列等等。当然,散列还有散列函数的设计,碰撞问题等,这原创 2014-11-16 20:34:27 · 328 阅读 · 0 评论 -
写二叉排序树的问题与指针的理解
#include#include#includeusing namespace std;typedef struct _TreeNode{int data;_TreeNode* right;_TreeNode* left;} TreeNode;TreeNode* CreateTree(){TreeNode* node=(TreeNode*)malloc(sizeof(Tr原创 2014-11-16 20:28:22 · 421 阅读 · 0 评论 -
游戏协议
#includeusing namespace std;enum Protocol {login2,enterbattle}; //首先声明一个枚举类型作为协议定义,枚举值为0即为login2表示传输的是登陆信息,枚举值为1即为enterbattle表示传输的是进入战斗信息struct _原创 2014-11-16 21:08:07 · 400 阅读 · 1 评论 -
平衡二叉树
1.二叉排序树定义(1)二叉树如果有左子树,则左子树的所有节点都小于根节点(2)如果有右子树,则右子树的所有节点都大于根节点(3)二叉树的左子树和右子树也都是二叉排序树2.二叉平衡树的定义树的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差不大于1二叉平衡树的作用在于在查找时,能保证每次查找的速度都差不多。二叉排序树的代码我已经写过了原创 2014-11-16 20:56:23 · 357 阅读 · 0 评论 -
动态规划解最长公共子序列问题bug
昨天写动态规划解最长公共子序列问题是出错了,纠结了我一天,浪费了好多时间。问题是这样的,源代码:#include#include#includeusing namespace std;int a[1001][1001];char s1[1000],s2[1000];int max(int x,int y){if(x>y)return x;原创 2014-11-16 20:45:42 · 328 阅读 · 0 评论 -
分治,动态规划和贪婪算法
分治,动态规划和贪婪算法都是将大的问题分解成小的问题解决的方法,不同的是:分治只是简单的将大的问题分解成小的问题,比如斐波那契数列的递归算法就是分治算法,他将求第n个斐波那契数列的问题分解成求第n-1个和n-2个的和,这个和继续使用递归算法求出。动态规划也是将大的问题分解为小的问题,但是它一种解决又互相重叠的小的问题的算法,如果只是分解,这些小的问题有可能会重复计算,从而增加计算量,而原创 2014-11-16 21:04:42 · 395 阅读 · 0 评论 -
二维数组和动态创建数组
1.二维数组在内存中是以行优先的方式按照一维顺序关系存放的。因此对于一个二维数组,可以按照一个一维指针数组来理解,数组名是他的首地址,这个指针数组的元素个数就是行数,每个元素是一个指向二维数组某一行的指针。例如,声明一个二维int型数组:int array[2][3]={{11,12,13},{21,22,23}};可以理解为: array array[0]---array原创 2014-11-16 20:48:53 · 303 阅读 · 0 评论 -
栈和列队
#include#include#includeusing namespace std;#define STACKSIZE 5#define INCREASESIZE 5typedef struct _stack{int *base;int *top;int size;} mystack原创 2014-11-16 20:21:04 · 249 阅读 · 0 评论 -
ACM--最长公共子序列 动态规划求解
最长公共子序列问题:给你两个字符串a[m],b[n],求出他们的公共子字符串的长度(子字符串不需要再原字符串中连续)。这个问题的一般想法是:1.找出a[m]中的每个子字符串;2.看其是否也能存在在b[n]中;3.找出公共子字符串中最大的一个。然而这个方法对于计算机来说实在是过于复杂,比较好的方法是使用动态规划的方法:首先这是一个比较复杂的问题,我们需原创 2014-11-16 20:37:19 · 308 阅读 · 0 评论