
数据结构
carl99
这个作者很懒,什么都没留下…
展开
-
查看链表是否有环(数据结构C++表示)
查看链表是否有环有两种方法: 方法一:声明两个指针cur1和cur2,让cur1->next每次都指向下一个结点,cur2每一次都从第一个节点指到cur1当前的结点,然后判断两个指针指向同一个节点的步数,如果步数一样,则说明还没有找到环。如果步数不一样,则说明找到环了。方法二:声明两个指针p和q,p每次走一步,q每次走两步,然后判断p和q是否相等,如果相等的话,说明有环,因为只有在有环的状况下,q原创 2015-07-30 16:10:25 · 663 阅读 · 0 评论 -
魔术师发牌问题(数据结构)
笔记#include<stdio.h>#include<stdlib.h>#define CardNumber 13typedef struct node{ int data; struct node *next;}sqlist,*linklist;linklist CreateLinkList(){ linklist head = NULL; linklis原创 2015-07-31 11:10:08 · 636 阅读 · 0 评论 -
数据结构(双向循环链表)
问题abcd...26个字母,控制台输入3,则显示defghijklmnopqrstuvwxyzabc,控制台输入-3则显示xyzabcdefghijklmnopqrstuvw使用双向链表实现的代码如下:#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0typedef char ElemType;ty原创 2015-07-30 22:57:09 · 590 阅读 · 0 评论 -
编译器括号检查原理(C)
编译器括号检查原理: 比如输入:{[]} 程序处理: 1.先压入‘{‘,现在栈为‘{’【这里表示栈内容的时候,是从栈底元素开始写,从左到右表示栈底到栈顶的元素】; 2.取出栈顶元素’{‘,判断输入的第二个符号’[‘是否能与’}‘匹配,判断结果是不匹配; 3.将‘{[’压入栈,现在栈为’{[‘; 4.取出栈顶元素’[‘,判断输入的第三个符号’]‘是否能与’[‘匹配,判断结果是匹配的,现在栈原创 2015-07-31 16:55:53 · 922 阅读 · 0 评论 -
汉诺塔(递归)
问题:印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。实现代码如下:#include<stdio.h>#include<stdlib.h>//将n个盘子从x借助y移动到z上边void mov原创 2015-08-03 16:39:04 · 284 阅读 · 0 评论 -
中缀表达式转换为逆波兰表达式(C++)
中缀表达示转换为逆波兰表达示#include<stdio.h>#include<stdlib.h>#define STACK_INIT_SIZI 20#define STACKINCREMENT 10typedef char ElemType;typedef struct { ElemType *base; ElemType *top; int stackSize;原创 2015-08-03 11:06:45 · 1274 阅读 · 0 评论