软件综合实习
7、实习总结
通过迷宫问题的编程,认真回顾和重新思考数据结构的使用,比如对栈、指针、链表等的深入了解,让我感受到了数据结构及其算法的重要。此外还熟悉了各种方法的应用。
在编程过程中,我认识到程序员要有丰富的想象力,不拘泥于固定的思维方式,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,实习期间,我通过多个途径来帮助自己建立较丰富的知识结构,查阅了大量的书籍,并通过网上的资料学习到了很多。
在编程时我也看到了有良好的编程风格是十分重要的,特别是写注解,一些新的灵感还是需要立即记下的,或者反复阅读注解后,会有新的思想。在时间效率上也提高了。
在实习这三周里,我遇到了很多的困难,当自己认真思考后还在纠结时,我会跟同学们一起交流,或者向老师请教。在这里非常地感谢老师和同学们的帮助!
2013年6月27日星期四
信息科学与工程学院 - 20- 网络工程11-1班
软件综合实习
由于上面的原代码编排过,可以编译时出错,下面附没有编排的:
#include
#include
信息科学与工程学院 - 21- 网络工程11-1班
软件综合实习
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【定义迷宫数据结构】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
class T //定义描述迷宫中当前位置的结构类型 {
public:
int x; //x代表当前位置的行坐标 int y; //y代表当前位置的列坐标 int dir; //0:无效,1:东,2:南,3:西,4:北 };
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【定义链表结点】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
class LinkNode //链表结点 {
friend class Stack; //将外部class Stack声明为LinkNode类的友元函数 public:
T data;
LinkNode *next; };
信息科学与工程学院 - 22- 网络工程11-1班
软件综合实习
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【定义栈数据结构】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
class Stack {
private:
LinkNode *top; //指向第一个结点的栈顶指针
public:
Stack(); //构造函数,置空栈 ~Stack(); //析构函数
void Push(T e); //把元素data压入栈中 T Pop(); //使栈顶元素出栈 T GetPop(); //取出栈顶元素 void Clear(); //把栈清空
bool empty(); //判断栈是否为空,如果为空则返回1,否则返回0 };
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【初始化Stack()】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
Stack::Stack() //构造函数,置空栈
信息科学与工程学院 - 23- 网络工程11-1班
软件综合实习
{
top=NULL; }
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【初始化~Stack()】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
Stack::~Stack() //析构函数 { }
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【压栈函数】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
void Stack::Push(T e) //把元素e压入栈中 {
LinkNode *P; P=new LinkNode;
P->data=e; //链栈【头插法】,把e插到链头 P->next=top; top=P; }
信息科学与工程学院 - 24- 网络工程11-1班