
数据结构
信手斩龙
新手 求求多多关照
展开
-
【数据结构】约瑟夫环问题
约瑟夫环 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。 分析: (1)由于对于每个人只有死和活两种状态,因此可以用布尔型数组标记每个人的状态,可用true表示死,false表示活。 (2)开始时每个人都是活的,所以数组初值全部赋为false。 (3)模拟杀人过程,直到所有人都被杀死为止。 换一个角度来理解这道题目 既然约塞夫问题就是用人来举例的,那我们也给每个人一个编号(索引值),每个人用原创 2020-12-22 23:47:12 · 1297 阅读 · 0 评论 -
【数据结构】封装单链表
今天将之前所学习的链表进行封装,增加一些操作,重载输入,输出运算符。 一、概念 结点:数据元素的存储映像 链表:n个结点链接成起来形成一个链表,即为线性表的 链式存储结构 单链表: 结点中只包含一个指针域 头指针:指向链表中第一个结点(或为头结点、或为首元结点)的指针 头结点:在链表的首元结点之前附设的一个结点;数据域内只放表长等信息,它不计入表 长度。其作用是统一空表、和非空链表的形式 首元结点:指链表中存储线性表第一个数据元素a1的结点 二、封装链表类 #pragma once #include&原创 2020-12-21 23:54:15 · 407 阅读 · 0 评论 -
【数据结构】封装顺序表
最近在看《大话数据结构》,回顾一下之前数据结构的学习,之前是用C语言来完成的代码,鉴于已经学习了C++,此次便使用类来进行顺序表的封装吧! 一、概念 顺序表,全名顺序存储结构,是线性表的一种,他符合线性表“一对一”的逻辑关系。同时又占用一组地址连续的存储单元。 动态顺序表:指的是用来存储数据的数组大小是我们动态申请的,用起来比较灵活。 静态顺序表:在设计的时候,就已经规定了数组的大小,不灵活。 此次我们使用的是动态顺序表来进行的操作。 二、设计顺序表 线性表的动态分配顺序存储结构 typedef原创 2020-12-15 13:07:12 · 1285 阅读 · 0 评论