![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
文章平均质量分 74
Bigoudi
这个作者很懒,什么都没留下…
展开
-
循环链表(约瑟夫问题的衍生问题)
问题描述:编号为1~N的N个人按顺时针方向围坐一圈,每个人持有一个密码(正整数,可以自由输入),开始任选一个正整数作为报数上限值M,从第一个人按照顺时针方向自1开始顺序报数,报到M时停止报数。报M的人出列,将他的密码作为新的上限值M,从他顺时针方向的下一个人开始从1报数,如此下去,直至所有人出列为止。#include #include #include using namespace原创 2017-10-23 11:16:23 · 317 阅读 · 0 评论 -
1.Java实现各种排序
下文是根据《算法-第四版》编写的排序代码,与大话数据结构中可能有出入,但思想是一样的,灵活多变的算法呀!package com.yuan;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;imp原创 2017-11-20 20:17:55 · 388 阅读 · 0 评论 -
2.Java定义二叉树、二叉搜索树和Huffman树
二叉树定义:package com.yuan;public class BinTreeNode { private Object data; //数据域 private BinTreeNode parent; //父结点 private BinTreeNode lChild; //左孩子 private BinTreeNode rChild; //右孩子 priva原创 2017-11-20 21:51:56 · 240 阅读 · 0 评论 -
3.散列表
一、基于拉链法的散列表1. 拉链法:将大小为M的数组中每个元素指向一个链表,链表中的每个结点都存储了散列值为该元素的索引的键值对。 (就像从数组中拉出来的一条链一样~发生冲突的元素都被存储在链表中了!)2. 基本思想选择足够大的M,使得所有链表都尽可能地短,以保证高效地查找。查找分两步:首先根据散列值hash(key)找到对应的链表st原创 2017-11-23 22:00:03 · 359 阅读 · 0 评论 -
4.图的基本概念
本文主要对图的一些基本概念进行整理,参考书籍《大话数据结构》。图 想象一下我们生活中的地图,它用圆点、线、文字等等很多符号去表示省市、山川、河流等等,这些符号构成了我们的地图,我们可以沿着线从一个地方找到另外一个地方...地图是一种比较复杂的图,本文我们只介绍简单的图,由有限个顶点和顶点之间的边组成。 图(Graph):由顶点的有穷非空集合和顶点之间边的原创 2017-11-24 10:19:25 · 255 阅读 · 0 评论