随笔分类 -  数据结构与算法

拉丁方阵问题 -- python实现
摘要:问题描述 拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,而且每种元素在一行和一列中 恰好出现一次。著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的符号,拉丁方阵因此而得名。 比如: 1 2 3 2 3 1 3 1 2 问题:怎样构造N阶拉丁方阵? 列表 单循环链表 阅读全文
posted @ 2019-12-20 11:10 雷子-LL 阅读(673) 评论(0) 推荐(1)
魔术师发牌问题 -- python实现
摘要:问题描述 魔术师手中有A、2、3……J、Q、K十三张黑桃扑克牌。在表演魔术前,魔术师已经将他们按照一定的顺序叠放好(有花色的一面朝下).魔术表演过程为:一开始,魔术师数1,然后把最上面的那张牌翻过来,是黑桃A;然后将其放到桌面上;第二次,魔术师数1、2;将第一张牌放到这些牌的最下面,将第二张牌翻转过 阅读全文
posted @ 2019-12-20 11:10 雷子-LL 阅读(468) 评论(0) 推荐(0)
约瑟夫问题 -- python实现
摘要:问题描述 N个人围成一个圈, 从第一个人开始报数, 报到M的人出圈, 剩下的人继续从1开始报数, 报到M的人出圈;如此往复, 直到所有人出圈. 列表解决 循环链表解决 参考: "经典算法 约瑟夫环问题的三种解法" "百度百科" 阅读全文
posted @ 2019-12-20 11:09 雷子-LL 阅读(2648) 评论(0) 推荐(0)
数据结构学习--单循环链表(python)
摘要:概念 将单链表的终端节点的指针由原来的空指针改为指向头节点, 就是整个单链表形成一个环, 这种首尾相接的单链表称为单循环链表. 实现 阅读全文
posted @ 2019-12-13 13:12 雷子-LL 阅读(336) 评论(0) 推荐(0)
数据结构学习--双向链表(python)
摘要:概念 双向链表(Double_linked_list)也叫双链表,是链表的一种,它的每个数据结点中都有 两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可 以很方便地访问它的前驱结点和后继结点。 实现 阅读全文
posted @ 2019-12-13 13:11 雷子-LL 阅读(261) 评论(0) 推荐(0)
数据结构学习--单链表(python)
摘要:概念 链表(linked_list)是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序 是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间) ,另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如 单链表,双向链表,循环链表等. 阅读全文
posted @ 2019-12-13 13:10 雷子-LL 阅读(324) 评论(0) 推荐(0)