`
128kj
  • 浏览: 584913 次
  • 来自: ...
社区版块
存档分类
最新评论
文章列表

递归算法

   递归是指在定义自身的同时又出现了对自身的引用(比如在函数体内直接或间接的调用自己)。如果一个算法直接或间接地调用用自已,则称这个算法是一个递归算法。     任何一个有意义的递归算法总是由两部分组成:递 ...
判断题: 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 ...
...
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 ...
一  选择题 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语言描述数据结构的教材不多,并且以影印版和翻译本居多。 ...
Global site tag (gtag.js) - Google Analytics