
C++ 数据结构 算法
文章平均质量分 76
arena_zp
这个作者很懒,什么都没留下…
展开
-
单链表的倒置
今天晚上作老师布置的作业,一道是单链表的倒置,可把我搞惨了..,这里也把我可悲的经历与大家说一下,提个醒免得以后犯和我一样的很傻的错误:老师在PPT写好了函数接口,于是我就直接把它拷贝到vs 2005 express 中编写,写好了,ctrl + 7 进行编译,“error C4335: 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式”“ warning C40原创 2007-04-09 03:38:00 · 4481 阅读 · 0 评论 -
ZJU 1196 Fast Food
http://acm.zju.edu.cn/show_problem.php?pid=10132688316 2007-11-28 21:08:28 Accepted 1196 C++ 00:00.01 576K arena /*动态规划:用剪切粘帖法证明最优子结构: 设f[i][j]是前i个shop里放置了j个depot的最小sum。则:f[i][j]=min{ f[i-k][j-1]+c[原创 2007-12-01 00:05:00 · 805 阅读 · 0 评论 -
字符匹配 真正理解KMP算法的力量 ( 修正)
问题提出:给定两字符串 s[], t[]. 实现函数 find( const char s[], const char t[], int pos ),功能为从字符串s[] 的第pos个位置起(按照C++中数组下标规定,以0开始计数)开始查找t[]在s[]中第一次出现的位置,若干s[]中不存在t[],返回-1.// 解法源代码下载地址:KMP.cpp & KMP.exe分析:这道题很自然的想法就原创 2007-06-05 00:24:00 · 1842 阅读 · 0 评论 -
堆排序( 内部排序 续 )
昨天老师讲了最后一个内部排序方法:堆排序。刚开始听的时候,比较晕。回来自己想了一会儿,豁然开朗...呵呵。真是佩服那些做算法研究的人。牛X。堆:假设为大根堆,则 a[i] >= max{ a[2i+1], a[2i+2] } , a[i] 为 parent, a[2i+1], a[2i+2] 为其左/右儿子。堆排序: 选择排序的优化。逻辑抽象(顺序地为数组元素下标编号)出一颗完全二叉树(自上而原创 2007-05-31 21:00:00 · 633 阅读 · 0 评论 -
C / C++ 编译预处理
今天做练习用到头文件包含时遇到了 redefinition 的报错。仔细一看才发现是 我没有很好地使用条件编译来协调头文件包含关系(平常说的 “头文件卫士”就这么回事 )。于是找来尘封已久的>,复习了编译预处理这一章节。做点笔记如下:C预处理程序 : 在用C编译程序对C源代码进行编译之前,即在语法分析、代码生成和优化之前,由C 预处理程序对源代码进行第一次处理。处理时,它忽原创 2007-06-03 04:49:00 · 1350 阅读 · 0 评论 -
基于单链表的列表基本操作 类C语言实现
关于单链表的故事实在太多了,孰能生巧。今天有个同学说怎样用C方式(不用类)的形式重写单链表的列表。刚开始不以为然,可后来发现其实不那么简单啊。复习了严老师的数据结构后,于是就有了今天的第一个练习。#include using namespace std;typedef int ElemType;typedef struct LNode{ ElemType data; LNode * next;原创 2007-06-03 02:51:00 · 1197 阅读 · 0 评论 -
算法习题 (去掉数组重复元素 + 交换一串数组元素 )
今天在一本讲基础算法的书上看到两道比较有意思的算法的题目,自己做了一下,再和书上比较一下。书上推荐的算法的确是比大家经常想到的算法优化了不少。1、已知整数数组a[n]中有重复的元素,试实现函数 void purge( int * a, int &n ); 该函数Post 条件为a[n] 中个元素相异。 常规思路:对表中任一个元素a[i],令 j 从 i+1 到 n-1,将a[i]和a[j]进行原创 2007-06-02 02:31:00 · 4839 阅读 · 0 评论 -
Introduction to " Divide and Conquer"
These days I have been troubled with the "backtracking algorithm", its so complicated to me that i cant get it through in a short time. However during the study of "backtracking algorithm", i picked原创 2007-04-28 15:16:00 · 828 阅读 · 0 评论 -
Analysis On Tic-Tac-Toe
Its a long time that I havent written any page. Because Ive got many things to do these days, even on weekends I have to spare much time to prepare for my tutoring. However, I never stop thinking a原创 2007-04-23 06:10:00 · 3297 阅读 · 1 评论 -
Fibonaci的递归与非递归实现的差别
递归是一种功能,开始学时要理解系统怎样实现递归,然后以后写程序时就只需要找出一种递归“思路”就行了,不必再深究函数具体的实现步骤。我们在用递归思路解决问题时,要根据递归的系统实现来考虑什么问题改用递归,什么问题不该用递归。因为递归运行的内存消耗与 Recursive Tree (递归树)的deepth 有关,所以象Fibonaci 数列这种问题就不适合用递归。现在就让我们看一下用递归与非递归实原创 2007-04-12 14:40:00 · 1079 阅读 · 0 评论 -
C++引用规则
今天在写函数接口在使用引用传递参数的时候,老是编译通不过,email老师后决定复习一下C++中引用的具体使用规则,于是就有了下面一篇C++指针的小结。 首先,引用是C++引入的新语言特性,是一个变量的别名, 它必须指向一个实实在在的地址(且这个地址要在引用产生作用时还在内存中),系统始终不为其分配内存,只是新建了一对对应关系。正因如此,1、引用必须在定义时初始化,且初始化后程序不能改变此原创 2007-04-11 04:19:00 · 3211 阅读 · 1 评论 -
无向图的深度搜索和广度搜索
学习图的第一步 :#define MAXNODE 40 // 千万不要加 ; #define NIL 999#define INFI 9999999#include #include using namespace std;struct arcnode { int vertex; int weight; struct arcnode * nextarc;};typedef str原创 2007-12-02 03:46:00 · 1362 阅读 · 0 评论