随笔分类 - 之前的比赛题目
摘要:1 链栈通常用单链表表示,由于栈的主要操作是栈顶插入与删除,显然以链表的头部作为栈顶最方便,而且没必要为了操作方便附加一个头结点 2 //链式存储结构(将单链表头指针与栈顶合二为一) 3 typedef struct StackNode 4 { 5 ElemType data; 6 struct S
阅读全文
摘要:1 //将二进制转化为十进制(利用后入先出的特点) 2 //二进制数 1101001 3 /* top 4 1 5 0 6 0 7 1 8 0 9 0 10 1 11 1 base */ 12 13 #include<stdio.h> 14 #include<stdlib.h> 15 #includ
阅读全文
摘要:1.栈的元素必须后进先出 2.栈的操作只能在线性表的表尾进行 3.对于栈,栈的表尾称为栈顶(top),相应的表头称为栈底(bottom)。 栈的插入操作(push)叫进栈,也叫压栈,入栈。 栈的删除操作(Pop),叫出栈,也叫弹栈。 //栈基本操作 //栈的顺序存储结构 #define STACK_
阅读全文
摘要:题目描述: 有黑桃1到13,13张牌,成某种顺序,魔术师可以从1开始数 ,数1,背面朝上的13张牌第一张就是1,然后放到桌面上,然后从1开始数,把第一张放在所有牌下面,数到2,翻开,就是2,再放到桌子上,以此此类推 #include<stdio.h> #include<stdlib.h> #defi
阅读全文
摘要:1 描述:一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。 2 如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王? 3 //用循环
阅读全文
摘要:1 方法一:生成链表 计算节点个数 找到中间 2 方法二:Status GetMidNode(LinkList L, ElemType *e) //用两个指针 快指针是慢指针移动速度的两倍 快指针移动到结尾 则慢指针移动到中央 (这种方法是第一种方法速度三倍) 3 { 4 LinkList sear
阅读全文
摘要:1 //双向链表的结构 2 typedef struct DualNode 3 { 4 Elemtype data; 5 struct DualNode *prior; //前驱结点 6 struct DualNode *next; //后继结点 7 } DualNode,*DuLinkList;
阅读全文
摘要:1 来自https://www.bilibili.com/video/av2975983/?p=17&t=13 2 个人感悟:循环链表的插入与删除与普通链表的区别就是在一个结点 而且初始化功能循环链表的头指向尾则代表空 普通链表头指针指针域指向NULL为空 3 4 //算法描述 5 //链表存储结构
阅读全文
摘要:1 此代码由https://fishc.com.cn/thread-46760-1-1.html转载 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 6 #define OK 1 7 #define ERROR -1 8 #define LEN sizeof
阅读全文

浙公网安备 33010602011771号