//=================================================
// File Name :LinkStack_demo
//------------------------------------------------------------------------------
// Author :Common
//类名:Link_long
//属性:
//方法:
class Link_long{//链节点类
public long dData;
public Link_long next;//链表中下一个节点的引用
public Link_long(long dData) {
super();
this.dData = dData;
}
public void displayLink(){//显示当前节点的值
System.out.println("dData"+dData);
}
}
//类名:LinkList_long
//属性:
//方法:
class LinkList_long{
private Link_long first;//只需要第一个节点,从第一个节点出发即可定位所有节点
public LinkList_long() {//构造函数
this.first = null;
}
public boolean isEmpty(){
return (first == null);
}
public void insertFirst(long dd){//插入元素是从链表的头开始插入
Link_long newLink = new Link_long(dd);
newLink.next = first;
first = newLink;
}
public long deleteFirst(){//删除temp.dData
Link_long temp = first;//暂存first
first = first.next;//把next设为first
return temp.dData;//返回原来的first
}
public void displayList(){
System.out.println("List(first-->last):");
Link_long current = first;//用于不断改变位置实现遍历
while(current != null){
current.displayLink();
current = current.next;
}
}
public Link_long find(int key){//查找指定的关键字
Link_long current = first;
while(current.dData != key){
if(current.next == null)
return null;
else
current = current.next;
}
return current;
}
public Link_long delete(int key){//如果current的值匹配,则删除
Link_long current = first;
Link_long previous = first;
//没有匹配到值
while(current.dData != key){
if(current.next == null)
return null;
else{//pre和cur向后移动
previous = current;
current = current.next;
}
}
//匹配到值
if(current == first)//只有一个first,并匹配,则把first设成first.next
first = first.next;
else//current的值匹配,则删除,并把cur的next赋给pre的next
previous.next = current.next;
return current;
}
}
//类名:LinkList_long
//属性:
//方法:
class LinkStack{//用链表实现栈,链表从First开始插入,新的元素将变成First,先删除后来元素
private LinkList_long theList;
public LinkStack() {//构造函数
theList = new LinkList_long();
}
public void push(long j){//入栈,即在链表的First插入元素
theList.insertFirst(j);
}
public long pop(){//出栈,即删除链表的First元素
return theList.deleteFirst();
}
public boolean isEmpty(){//判断栈是否为空,即判断链表是否为空
return (theList.isEmpty());
}
public void displayStack(){
System.out.println("Stack(top-->bottom):");
theList.displayList();
}
}
//主类
//Function : LinkStack_demo
public class LinkStack_demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
LinkStack theStack = new LinkStack();
theStack.push(10);
theStack.push(20);
theStack.push(30);
theStack.displayStack();
theStack.pop();
theStack.pop();
theStack.displayStack();
}
}
java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
java实现 数据结构:链表. 栈. 队列.优先级队列.哈希表 数据结构javavector工作importlist 最近在准备找工作的事情,就复习了一下java.翻了一下书和网上的教材,发现虽然 ...
JAVA数据结构之链表
JAVA数据结构之链表 什么是链表呢? 链表作为最基本的数据结构之一,定义如下: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 简单来说呢,链 ...
【Java数据结构学习笔记之二】Java数据结构与算法之栈(Stack)实现
本篇是java数据结构与算法的第2篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型 栈是 ...
java数据结构与算法之栈(Stack)设计与实现
本篇是java数据结构与算法的第4篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型 栈是一种用于 ...
Java数据结构和算法(一)--栈
栈: 英文名stack,特点是只允许访问最后插入的那个元素,也就是LIFO(后进先出) jdk中的stack源码: public class Stack extends Vector ...
Java数据结构与算法(2):栈
栈是一种线性表,特点在于它只能在一个位置上进行插入和删除,该位置是表的末端,叫做栈的顶(top).因此栈是后进先出的(FIFO).栈的基本操作有push.peek.pop. 栈的示意图 进栈和出栈都只 ...
JAVA数据结构——单链表
链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ...
数据结构之链表、栈和队列 java代码实现
定义抽象节点类Node: package cn.wzbrilliant.datastructure; /** * 节点 * @author ice * */ public abstract class ...
自己动手实现java数据结构(三) 栈
1.栈的介绍 在许多算法设计中都需要一种"先进后出(First Input Last Output)"的数据结构,因而一种被称为"栈"的数据结构被抽象了出来. ...
随机推荐
解决java使用https协议请求出现证书不信任问题(PKIX path building failed)
解决https请求时出现pkix path building fail错误 方法 将submail.cer 安全证书导入到java中的cacerts证书库 (sumail是我从https://api. ...
Spring+Mybatis多数据源配置
一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:330 ...
Qt之多窗口切换
在新建对象(下一页面)的时候,把自身的this指针带进去,然后把自身hide(),隐藏起来,在(下一页面中)要回退的时候只需通过: 1. parentWidget()->show(); //显示 ...
MYSQL中关于日期处理的函数
< DOCTYPE HTML PUBLIC -WCDTD HTML TransitionalEN> MySQL数据库中SQL语句中 关于日期.时间\时间戳的函数 一 MySQL 获得当 ...
iOS中UIKit——UIDataDetectors(数据检测器)它将电话、邮件、网址等变为链接
1.它用于UITextView和UIWebView,属性名为:dataDetetorTypes 2.此属性可以设定使符合电话.邮件.网址.符合格式的日期等文字变为链接文字. 3.电话号码点击后拨出电话 ...
Python的字符串操作和Unicode
字符串类型 str:Unicode字符串.采用''或者r''构造的字符串均为str,单引号可以用双引号或者三引号来代替.无论用哪种方式进行制定,在Python内部存储时没有区别. bytes:二进制字 ...
Unicode与汉字
当遇到\u7f3a\u5c11 这样形式的字符串时,其实它代表的是汉字 具体的网上可以进行Unicode转中文 翻译
docker(二) windows10下安装docker
官方安装文档: https://docs.docker.com/docker-for-windows/install/ https://docs.docker.com/docker-for-windo ...
Vant UI 安装
一:安装 npm i vant -S 二.引入组件(共有三个方法) 方法一:使用 babel-plugin-import (推荐) 1. 安装 babel-plugin-import 插件 npm i ...
在SELECT的时候,加入一列固定值
SELECT * FROM (select id id, si_code code, si_sharetype sharetype, si_name name, si_organid organid, ...