数据结构与算法
文章平均质量分 58
thinkpadshi
这个作者很懒,什么都没留下…
展开
-
顺序表中的元素移动
<br />// 移去index位置的对象,若操作成功,则返回被移去对象,否则返回null<br /> public E remove(int index) {<br /> if (this.n != 0 && index >= 0 && index < this.n) {<br /> E old = (E) this.table[index];<br /> for (int j = index; j < this.n - 1; j++) { // 元素前移,平均移动n/2<br /> th原创 2011-04-17 16:29:00 · 1057 阅读 · 0 评论 -
数据结构与算法(2)——各种方法实现杨辉三角
分别用二维数组、一维数组、递归等三种方法实现杨辉三角; 如下是完整的Java代码:package algorithm;public class YangHui原创 2015-12-05 14:00:42 · 2898 阅读 · 0 评论 -
数据结构与算法(1)——分解质因数及各种方法求最大公约数
1.分解质因数 2.质因数分解法、辗转相除法求两个数的最大公约数 3.质因数分解法、辗转相除法求n个数的最大公约数完整的Java代码如下:原创 2015-11-26 14:49:55 · 4773 阅读 · 0 评论 -
建立排序的单链表
排序的单链表是指,各结点按data域的值递增或递减顺序链接。结点data域的对象必须是可比较大小的,即已经实现了java.lang.Comparable接口的compareTo()方法。此方法的API描述为:compareToint compareTo(T o)Compares this object with the specified object for order. Ret原创 2012-08-22 20:25:19 · 844 阅读 · 0 评论 -
循环单链表
如果单链表的最后一个结点的next域保存单链表头指针head的值,则该单链表就成为了环形结构,称为循环单链表。 设rear是单链表的尾指针,执行下列语句,使一条单链表成为一条循环单链表 rear.next = head; 当head.next = head时,循环单链表为空。 循环单链表类仍然使用单链表结点类,与单链表类的操作相似,详见点击打原创 2012-08-22 19:58:17 · 492 阅读 · 0 评论 -
线性表之双链表
1.概述 在单链表中,每个结点只有一个指向后继结点的链。若要查找某个结点的前驱结点,则需要从链表的头指针开始沿着链表方向逐个查找,效率很低。此时,就需要采用双链表。 2.双链表结构 双链表(double linked list)的每个结点有两个链域,分别指向它的前驱和后继结点,结构如下: 当he原创 2012-08-22 21:33:02 · 856 阅读 · 0 评论 -
带头结点的单链表
1.带头结点的单链表之描述 带头结点的单链表是指,在单链表的第一个结点之前增加一个特殊的结点,称为头结点。头结点的作用就是让所有的链表(包括空链表)的头指针非空,并使对单链表的插入、删除操作不需要区分是否为空表或者是否在第一个位置进行,也就是说,与在其他位置的插入和删除操作一致。 2.java实现package linearList;原创 2012-08-19 15:46:49 · 4290 阅读 · 0 评论 -
单链表之约瑟夫环(Josephus)
前面我用顺序表类实现了约瑟夫环(详见顺序表之约瑟夫环),今天再用单链表来实现一下,如下:package linearList;public class Josephus { private LList list;//创建线性表,用来存储元素 /* * 创建约瑟夫环并求解,指定其长度、起始位置、计数 */ public Josephus(int number,int sta原创 2012-08-18 18:09:55 · 1838 阅读 · 0 评论 -
单链表类
1.单链表类之java实现(结点类Node见单链表分析)package linearList;public class SinglyLinkedList implements LList{ protected Node head;//头指针,指向单链表第一个结点 /* * 构造空单链表 */ public SinglyLinkedList(){ this.head =原创 2012-08-18 16:40:46 · 1222 阅读 · 0 评论 -
单链表之递归算法
1.递归定义 定义:用一个概念本身直接或间接的定义它自己。 递归定义必须满足以下两个条件: (1).至少有一条初始定义是非递归的。 (2).由已知函数值逐步递推计算出未知函数值。 2.单链表之递归结构 单链表是递归结构,原创 2012-08-18 19:38:00 · 3990 阅读 · 0 评论 -
单链表逆转
1.算法描述 单链表逆转,就是把链表中 各结点的next域改为指向其前驱结点,原先第一个结点的next域为空,head改为指向原先的最后一个结点。逆转算法描述如下: 设p指向单链表中的某个结点,front指向p的前驱结点,则使p.next指向前驱的语句是原创 2012-08-19 11:16:33 · 7405 阅读 · 1 评论 -
单链表分析
由于单链表是由一个个结点链接而成,所以一下用单链表结点类和单链表类描述单链表 1.单链表结点类 采用java语言的引用类型来实现链式存储结构,单链表结点类Node声明如下:package linearList;public class Node {//单链表结点类 public E data;//数据域 public Node next;原创 2012-08-18 12:06:27 · 938 阅读 · 0 评论 -
线性表之链式结构
线性表的链式存储时用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,必须采取附加信息表示数据元素之间的顺序关系。因此,对每个表元素,除了存储元素本身的值外,还带有一个指向其后继元素的地址,这样就可以表示元素之间的顺序关系了,表结构如下:原创 2012-08-18 10:26:01 · 645 阅读 · 0 评论 -
顺序表之约瑟夫环(josephus)
1.问题描述 n个犯人站成一个圈,从第s个人开始数起,每数到第d个犯人,就拉出来斩了,然后再从下一个开始数d个,数到的人再处决,………………,直到剩下最后一个犯人就予以赦免。2.算法描述 创建一个具有n个元素的顺序表对象list。 从第s个元素开始,依次计数,每数到d,就将对应的元素删除。 重复计数并删除元素,原创 2012-08-17 18:36:01 · 3576 阅读 · 0 评论 -
线性表之顺序表
1.顺序存储结构 用一组连续的内存单元依次存放线性表的数据元素,元素在内存的物理存储次序与他们在线性表中的逻辑次序相同。 线性表的数据元素属于同一数据类型,设每个元素占用c字节,a(0)的存储地址为Loc(a(0)),则a(i)的存储地址Loc(a(i))为 Loc(a(i)) =L原创 2012-08-16 19:30:17 · 1575 阅读 · 0 评论 -
线性表概括
1.线性表的定义 线性表(linear list)是由n(n>=0)个类型相同的数据元素组成的有限序列 LinearList = (a0,a1,.........,a(n-1)) 2.操作 package linearList; public interface LList {原创 2012-08-14 17:06:31 · 652 阅读 · 0 评论 -
数据结构概括
最近在找实习的时候发现,企业还是很看重数据结构的,即使我应聘的是java开发,既然重要,那咱们就学吧,其实也算不上学了,因为大二的时候已经学过了,只不过在后来的项目中很少用到,所以忘了,现在就相当于温习一下了,这里先大概介绍一下数据结构的知识。 1.数据结构的任务是,讨论数据的各种逻辑结构,在计算机中的存储结构以及各种操作的算法设计 2.名言:数据结构+算法=程序原创 2012-08-14 16:36:42 · 755 阅读 · 0 评论 -
数据结构与算法(3)——矩阵的加、乘、转置运算实现
定义:由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称 m × n矩阵;在编程语言中可以当做二维数组来处理; 加减法:同型矩阵之间 乘法:两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。如A是m×n矩阵和B是n×p矩阵,它们的乘积C是一个m×p矩阵 ; 转置:把矩阵A的行换成同序数的列所得到的新矩阵称为A的转置矩阵;原创 2015-12-07 14:47:26 · 5178 阅读 · 0 评论