![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 77
豚豚祭
这个作者很懒,什么都没留下…
展开
-
单链表实现
单链表的实现还是很简单的...主要就是遍历操作... 这里我没有用链表的length来作为插入删除的正误判断,而是直接运用p==NULL条件的判断,下面是源码 #ifndef LINKLIST_H #define LINKLIST_H struct Node { int data; Node *next; }; class LinkList{ private: Node *head;原创 2015-10-24 10:36:01 · 299 阅读 · 0 评论 -
单循环链表实现
单循环链表的实现是基于单链表来的,但是也有所同... 单循环链表中,其链表结束标志是p!=head or p-next!=NULL.这也为后面带来一些困扰...如遍历时不能从p=head开始... 在插入过程中,由于p=head->next所以如果一开始不对pos==1进行判断,则无法将元素插在head结点后面,所以一下操作是必须的: if (pos == 1){ Node *s = new原创 2015-10-24 11:09:26 · 480 阅读 · 0 评论 -
链式栈的实现
顺序栈写的还是比较多的,由于书上没有链式栈的实现,所以在这里我先实现一下,留个记录。 头文件 #ifndef LINKLISTSTACK_H #define LINKLISTSTACK_H //设置指针指向前继元素 struct Node{ int data; Node *pre; }; class LStack{ private: Node *top; public:原创 2015-10-10 01:09:18 · 304 阅读 · 1 评论 -
队列的链式实现
今天最后老师问当栈的链式实现完成后,再实现队列,是否会简单?我回答,是的。 我的理由很简单,因为操作相同,其他的也应该类似,所以不会太难。至于实现之后,我的感受是怎么样的,我留在最后再说,顺便总结一下。 下面是头文件: #ifndef LINKLISTQUEUE_H #define LINKLISTQUEUE_H struct Node{ int data; Node *next; }原创 2015-10-10 22:46:55 · 261 阅读 · 0 评论 -
循环队列实现
在实现循环队列之前,我来说一说其中关键的地方: 1.front和rear指针的指向 问题:rear指最后一个节点,front的指针一般来说,指向队列中第一个节点的前一个位置 2.对于基于第一种情况,队列所能够存的最多数据个数为SIZE-1((SIZE为队列的大小) 3.初始化时,front与rear都是赋初始值0. 4.判空的条件:front==rear,对于这一个的记忆,你可以想象一个含原创 2015-10-11 06:17:22 · 403 阅读 · 0 评论 -
栈的应用之迷宫
利用栈对迷宫求解,采用的基本方法是回溯法,其实也算是一种暴力破解吧...毕竟是将一个一个方块检验直至终点或者栈空。 入栈:当栈顶元素方块周围有可行方块时,将该可行方块入栈 出栈:当栈定元素的方块周围都没有可行方块时,出栈 有几点需要注意: 1.当栈顶元素弹出时,我们又要重新对栈顶元素周围的方块进行检验,为避免进入死循环,所以需要记录一下该栈顶元素已经记录到周围哪一块 2.当入栈的时候,原原创 2015-10-15 01:25:41 · 351 阅读 · 0 评论