09 2021 档案
摘要:栈的基本概念 栈的定义 栈是一种只能在一端进行插入或删除的线性表。其中插入被称作进栈,删除被称作出栈。 允许进行插入或删除操作的一端被称为栈顶,另一段被称为栈底,栈底固定不变。其中,栈顶由一个称为栈顶指针的位置指示器来指示。 (PS:栈顶指针并非传统意义上的指针,比如顺序栈用的是一个整型变量来指示,
阅读全文
摘要:双链表的代码定义 #include <iostream> using namespace std; typedef struct _DLNode { int data; //结点数据域 struct _DLNode *next; //指向后继的指针 struct _DLNode *prev; //指
阅读全文
摘要:顺序表应用——逆置问题 问题描述 给定一个顺序表,将其中的元素逆置 例子 给定一个顺序表,其中有0至10共11个元素从小至大排列,请将这11个元素逆置使其从大到小排列 以下是解题代码 代码 #include <iostream> #define MAXSIZE 100 typedef struct{
阅读全文
摘要:约瑟夫问题 介绍 约瑟夫问题,又称约瑟夫置换、丢手绢问题。 一般形式 (本部分内容来自百度百科) 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。 代码 问题描述 本文以以下问题为例
阅读全文
摘要:循环链表定义 定义与单链表一样,操作时将末结点的指针指向开始结点即可 typedef struct _LinkNode { int data; struct _LinkNode *next; }LinkList; 循环链表操作 初始化循环链表 bool InitList(LinkList* &L)
阅读全文
摘要:单链表代码定义 typedef struct LinkNode { int data; //data存放结点的数据域(以int类型为例) struct LinkNode *next; //结点的指针域 }LinkNode, LinkList; 单链表的操作 初始化单链表 bool initList(
阅读全文
摘要:题目介绍 描述 现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1, 1/2 , 1/3, 1/4, 1/5, … 2/1, 2/2, 2/3, 2/4, … 3/1, 3/2, 3/3, … 4/1, 4/2, … 5/1, …
阅读全文