- 浏览: 601158 次
- 来自: ...
最新评论
-
lgh1992314:
相同的元素呢
一种离散化方法 -
HelloSummerR:
圆心的位置是随机的,于是圆的部分会落到canvas外,那样就显 ...
HTML5 Canvas学习笔记(1)处理鼠标事件 -
hlstudio:
好久没见到sokuban了,这有个java版的,带源码,可以参 ...
求推箱子的最小步数(java) -
肖泽文:
太好了,谢谢你。。有中文注释!
HTML5 推箱子游戏过关演示动画 -
swm8023:
删除操作,将最后一个叶子节点插入后也有可能上浮吧
彻底弄懂最大堆的四种操作(图解+程序)(JAVA)
文章列表
递归是指在定义自身的同时又出现了对自身的引用(比如在函数体内直接或间接的调用自己)。如果一个算法直接或间接地调用用自已,则称这个算法是一个递归算法。
任何一个有意义的递归算法总是由两部分组成:递 ...
判断题:
1. 数据元素是数据的最小单位。( )
2. 记录是数据处理的最小单位。 ( )
3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( )
4.算法的优劣与算法描述语言无关,但与所用计算机有关。( )
5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。( )
6.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。( )
7.程序一定是算法。( )
8.数据的物理结构是指数据在计算机内的实际存储形式。( )
9. 数据结构的抽象操作的定义与具体实现有关。( )
10. ...
判断题
1. 链表中的头结点仅起到标识的作用。( )
2. 顺序存储结构的主要缺点是不利于插入或删除操作。
3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( )
4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。( )
5. 对任何数据结构链式存储结构一定优于顺序存储结构。( )
6.顺序存储方式只能用于存储线性结构。( )
7.集合与线性表的区别在于是否按关键字排序。( )
8. 所谓静态链表就是一直不发生变化的链表。( )
9. 线性表的特点是每个元素都有一个前驱和一个后继。( )
10. 取线性表的第i个 ...
单链表实现队列,这里采用带头结点的单链表结构。根据单链表的特点,选择链表的头部作为队首,链表的尾部作为队尾。除了链表头结点需要通过一个引用来指向之外,还需要一个对链表尾结点的引用,以方便队列的入队操作的实现。为此一共设置了两个指针,一个队首指针和一个队尾指针,队首指针指向队首元素的前一个结点,即始终指向链表空的头结点,队尾指针指向队列当前队尾元素所在的结点。当队列为空时,队首指针与队尾指针均指向空的头结点。
public class Queue<T> implements QueueInterface<T> {
private Node<T> ...
《数据结构习题与解析》李春葆《第一版》(pdf电子书)可以作为计算机专业本、专科学生数据结构课程的学习参考书,也是报考计算机专业硕士研究生的必读参考资料,同时适合于数据结构课程自学者和计算机等级(三级或四级)考试者研习。
目录
第1章 概述
第2章 顺序表
第3章 链表
第4章 串
第5章 数组和稀疏矩阵
第6章 递归
第7章 广义表
第8章 树形结构
第9章 图
第10章 查找
第11章 内排序
第12章 文件
第13章 外排序
下载:
堆栈的链式存储称为链栈。
public class Stack<T> implements StackInterface<T> {
private Node<T> top; //链表首结点引用
private int size; //栈的大小
public Stack() {
top = null;
size = 0;
}
//返回堆栈的大小
public int getSize() {
return size;
}
//判断堆栈是否为空
public boolean isEmpty() ...
选择题
1. 算法的计算量的大小称为计算的( )。
A.效率 B. 复杂性 C. 现实性 D. 难度
2. 算法的时间复杂度取决于( )
A.问题的规模 B. 待处理数据的初态 C. A和B
...
北大《百练》上的题目http://poj.grids.cn/practice/2746/,用单循环链表模拟了一下。
时间限制: 1000ms 内存限制: 65536kB
描述
约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。
输入
每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:
0 0
输出
对于每行输入数据(最后一行 ...
public class Node {
private int a;
private int i;
Node next;
public Node(int a,int i,Node next){
this.a=a;
this.i=i;
this.next=next;
}
public Node(int a,int i){
this.a=a;
thi ...
数据结构概论:填空题
- 博客分类:
- 数据结构练习题(java解答)
1.计算机专业人员必须完成的两项基本任务是:(数据表示)和(数据处理)。
2.数据在计算机存储器中的存在形式称为(机内表示)。
3.概括地说,数据结构课程的主要内容包括: 数据的(逻辑结构)、定义在(逻辑结构上的基本运算)、数 ...
只实现了add()和get()方法,采用tail指针,使得添加节点非常简单。
public class SingleLinkedList<T> {
int size = 0;
Node<T> head, tail;
public SingleLinkedList() {
head = tail = null;
}
public void add(T data) {
if (size == 0) {
head = tail = new Node&l ...
网上看到的代码,非常不错。只实现了add()和get()方法。
public class LinkedList<E> {
int size = 0;
Node<E> head = new Node<E>(null, null, null);
public LinkedList() {
head.next = head.previous = head;
}
public void add(E date) {
//核心 循环双向链表
Node&l ...
线性表--选择题
- 博客分类:
- 数据结构练习题(java解答)
一 选择题
1.下述哪一条是顺序存储结构的优点?( )
A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示
2.下面关于线性表的叙述中,错误的是哪一个?( )
A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个( )的有限序列(n>0)。
A.表元素 B.字符 C.数据元素 D. ...
数据结构与算法(JAVA语言版),PDF电子书。 教材的特点:
在C语言作为教学语言时期,数据结构几乎都是用C语言来描述其算法。Java语言诞生后,以其功能完备及跨平台等特性,逐渐为计算机领域广大科技工作者所偏爱。因此,用Java语言来描述数据结构及其算法,有着很重要的现实意义。
1. 本教材使用Java语言来描述数据结构与算法是一个重要的特点。目前使用Java语言描述数据结构的教材不多,并且以影印版和翻译本居多。
...