摘要: 二级链表的实现,以及把二级链表展开成一级链表,关键是数据结构的设计,这里我用了二级链表的节点类,它包括了两个指针,一个指向一个二级链表节点,一个指向单链表的头结点。生成一个二级链表默认构造函数是只含有一个头结点为二级链表节点(空),插入的时候是插入一个单链表指针不为空,但是二级链表节点为空的二级链表节点。View Code 1 //二级单链表 2 #include<iostream> 3 using namespace std; 4 5 template<class Type> struct LinkNode 6 { 7 public: 8 Type data; ... 阅读全文
posted @ 2011-11-08 20:23 YipWingTim 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 要求是编写一个“找一对数字”的游戏,具体的output如下图:其他小的细节就是,如果没找到一对,那么就要重新盖住翻开的数字;比如上图的6和3,他们不是一对,那么在下一次找的时候他们都恢复到“*”的状态。 如果找到了一对,那么就让这一对数学一直在后面的游戏里面显示出来。当全部的“对子”都找到以后,询问玩家还要不要玩,如果要的话,就再重新随机16个数字,然后继续以上的步骤。实现没问题,但是有个细节逻辑没处理好。View Code 1 #include<iostream> 2 #include<ctime> 3 #include<cstring> 4 #inclu 阅读全文
posted @ 2011-11-08 07:30 YipWingTim 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 尽量减少空间复杂度。View Code 1 //矩阵旋转,顺时针90,180,270度 2 3 #include<iostream> 4 using namespace std; 5 6 #define M 4 7 #define N 3 8 9 char source[M][N];10 char rotate1[N][M];11 char rotate2[M][N];12 char rotate3[N][M];13 14 15 16 17 void revolve1()18 {19 char *p=source[M-1]; //记住一点,b和&b[0]意思一样,都是行地址 阅读全文
posted @ 2011-11-08 07:23 YipWingTim 阅读(639) 评论(0) 推荐(0) 编辑