java数据结构
学习简单的数据结构和算法,用java编写
qq_40179688
萌新
展开
-
java查找
一、直接查找简单粗暴,直接遍历整个数组,查找给定的数值就可以,找到返回下标,找不到返回-1(数组中的下标没有-1,表示越界不存在的意思)public class LinearSearch { public static void main(String []args){ int array[]={1,9,11,-1,34,89}; int index=seqsearch(array,-1); if(index>=0)原创 2020-11-28 22:48:04 · 341 阅读 · 0 评论 -
java实现逆波兰表达式
一、概念介绍:1.中缀表达式就是常见的运算表达式,如(3+4)×5-6,对于人们来说会习惯计算这种计算式,但是对于计算机来说就不好计算,尤其是涉及到小数,括号等情况。2.后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后比如:34+5*6-中缀转后缀表达式步骤:具体举例:将中缀表达式“1+((2+3)×4)-5” 转换为"1 2 3 + 4 × + 5 –"二、代码实现:1.首先给出一个中缀表达式字符串,需要将其先转换为后缀表达式在交给计算机计算结果。由于字符串遍历操作原创 2020-10-07 15:11:12 · 828 阅读 · 0 评论 -
java实现栈(数组模拟和单链表模拟)
一,基本概念简介:栈是一种后进先出的数据结构。一个元素如果最后进栈,那么最先出栈,一般都是用数组来模拟栈的特点。可以想象一个数组,现在设置两个指针top指针和base指针,一般来说base指针指向栈底并且这个指针是不移动的,起到一个标识作用。而top指针指向随着栈内元素的个数而移动,一般来说top指针指向栈顶元素的位置。元素进栈时把元素存储在top所指的数组下标位置,然后top指针+1。元素出栈时,先将top位置的元素保存,再将top指针减1。用数组模拟栈时,数组的容量是有限的,所以入栈之前要考虑一下栈是原创 2020-10-06 16:50:06 · 149 阅读 · 0 评论 -
java实现双向链表
之前分析了单链表的增删改查操作,双链表操作只是在此基础上稍微修改一下,可以作图辅助分析,这里直接上完整的代码。测试某个函数功能直接调用就行。新加了一个findforwardnode函数可以查找当前节点的前一个节点,可以测试是否是双向链表。package com.linear.test;/** * @author ymm * @create 2020-10-05 19:31 */public class DoubleLinkList { public static void main(S原创 2020-10-05 21:53:37 · 779 阅读 · 0 评论 -
单链表相关习题
1.求单链表节点个数思路:遍历单链表,每次遍历一个节点计数器加1即可。public int getlenth() { HeroNode temp=head.next; if(head.next==null) return 0; else { int len=0; while(temp!=null) { len++; temp=temp.next; } return len; } }2.查找单链表的倒数第k个节点思路:原创 2020-10-02 22:26:33 · 235 阅读 · 0 评论 -
java实现带头结点的单链表(增删改查)
一、概念简介:我的理解是单链表就是将一个一个的链表节点连接起来。不同于数组地址是连续的,单链表的地址可以是不连续的。每一个链表节点可以离散的存储在系统中,每一个链表节点里都有一个节点类型的指针来指向下一个节点,从而将离散的节点连接起来。而单链表的一些基本操作就是增删改查。举一个水浒英雄的例子来实现单链表的具体操作。二、代码实现和思路:1.链表节点结构:定义节点名为HeroNode,具体的属性有编号,姓名,外号,还有一个指向下一个节点类型的next指针。设置了一个构造函数来初始化节点信息,重写了节点的原创 2020-10-02 15:59:03 · 599 阅读 · 0 评论 -
java实现简单循环队列(数组)
public static void main(String []args) { //test CircleQueue queue=new CircleQueue(4); Scanner sc = new Scanner(System.in); System.out.print("1.入队 2.出队\n"); System.out.print("3.取头元素 4.计算容量+遍历\n"); System.out.print(".原创 2020-09-29 15:38:47 · 126 阅读 · 0 评论 -
java实现稀疏数组
一、概念简介稀疏数组就是数组中有很多的0,如果数组中有很多的0,那么完整的存储整个数组就会浪费空间,所以需要将稀疏数组的非零数保存在另外一个数组中就可以了,保证原数组和稀疏数组可以相互转换即可。转换思路原数组 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0原创 2020-09-28 23:35:24 · 102 阅读 · 0 评论