java实现顺序链表
C&C++是那么难学,以至于我连指针是什么都不知道。所以只能学习java了。
如今想用java实现N年前学过“数据结构(c语言版)”却又是那么吃力!
慢慢练吧!
写此博客,仅标记自己学过数据结构。以《数据结构(C语言版)》-严蔚敏 书本为参考。
顺序链表的java类文件:SequenceList.java文件
package list;
public class SequenceList {
	private int LIST_INIT_SIZE = 5;//链表的原始大小
	private int INCREMENT =1;//链表的增量大小
	private Object []SqList = null;//链表
	private int curIndex=0;//当前位置
	/**
	 * 初始化链表
	 * */
	public void initList()
	{
		SqList = new Object[LIST_INIT_SIZE];
	}
	/**
	 * 向链表中插入元素
	 * */
	public void insertList(Object o)
	{
		if(curIndex>LIST_INIT_SIZE-1)//判断当前链表是否已经满
		{
			//从新为链表分配空间
			System.out.println("从新分配空间");
			LIST_INIT_SIZE+=INCREMENT;
			Object []temp = new Object[LIST_INIT_SIZE];
			for(int i=0;i<curIndex;i++)
			{
				temp[i]=SqList[i];
			}
			SqList=null;
			SqList=temp;
		}
		//链表中如果不让其包含重复元素,则加入这段代码
		/*
		if(isContain(o))
		{
			System.out.println("链表中已包含此元素"+o);
		}else
		{
		}
		*/
		SqList[curIndex++]= o;
	}
	/**
	 * 判断链表中是否包含某元素
	 * */
	Boolean isContain(Object o)
	{
		for(int i=0;i<curIndex;i++)
		{
			if(SqList[i].equals(o))
			{
				return true;
			}
		}
		return false;
	}
	/**
	 * 删除链表中的某元素
	 *
	 * 如果包含重复元素都删除
	 * */
	public void delete(Object o)
	{
		for(int i=0;i<curIndex;i++)
		{
			if(SqList[i].equals(o))
			{
				for(int j=i;j<curIndex-1;j++)
				{
					SqList[j]=SqList[j+1];
				}
				curIndex--;
				continue;
			}
			if(i==curIndex-1)
			{
				System.out.println("不存在此元素"+o);
			}
		}
	}
	/**
	 * 获取链表中的某个元素
	 * */
	public Object getElement(int i)
	{
		if (i <= 0 || i > curIndex)
		{
			System.out.println("获取位置超出了链表中元素个数"+curIndex);
		}
		return SqList[i-1];
	}
	/**
	 * 打印链表
	 * */
	public void print()
	{
		for(int i=0;i<curIndex;i++)
		{
			System.out.print(SqList[i]+"\t");
		}
		System.out.println();
	}
}
Main函数测试类
package list;
public class SequenceListMain {
	public static void main(String[] args) {
		SequenceList sqList = new SequenceList();
		sqList.initList();
		sqList.insertList(1);
		sqList.insertList(2);
		sqList.insertList(3);
		sqList.insertList(4);
		sqList.insertList(5);
		sqList.insertList(6);
		sqList.delete(5);
		sqList.delete(9);
		sqList.insertList(1);
		sqList.print();
		sqList.delete(1);
		sqList.print();
		System.out.println("第2个元素是:"+sqList.getElement(1));
		System.out.println("第4个元素是:"+sqList.getElement(4));
	}
}
java实现顺序链表的更多相关文章
- java实现顺序表、链表、栈     (x)->{持续更新}
		1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ... 
- java实现单链表的增删功能
		JAVA 实现单链表的增删功能 package linked; class LinkedTable{ } public class LinkedTableTest { public static vo ... 
- JAVA数据结构之链表
		JAVA数据结构之链表 什么是链表呢? 链表作为最基本的数据结构之一,定义如下: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 简单来说呢,链 ... 
- JAVA数据结构——单链表
		链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ... 
- Java实现单链表的各种操作
		Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ... 
- Java初始化顺序
		package com.helei.init; class Log { public static String fatherStaticString(){System.out.println(&qu ... 
- [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
		Java初始化顺序1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包 ... 
- java算法01 - 链表
		1.链表 在Java中实现链表,每个节点都有一个值,然后把它链接到下一个节点.下面来看一下节点的实现 class Node<E> { private E e; private Node&l ... 
- JAVA按顺序播放多个wav音频
		用Java按顺序播放多个音频部件,不是同时播放.代码如下: List<String> files = new ArrayList<String>(); files.add(&q ... 
随机推荐
- Python开发基础-Day32 进程间通信、进程池、协程
			进程间通信 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的. 进程队列queue 不同于线程queue,进程 ... 
- poj2299(树状数组+离散化)
			这道题题意很简单,就是求逆序数.用暴力的方法是显然会超时的.这里考虑采用树状数组. 采用树状数组话遇到的问题就是需要999,999,999个空间来存放数据,这显然是不可行的.考虑到输入数据最多只有50 ... 
- Failed to resolve directive: el vue2报错
			vue2报错 Failed to resolve directive: el 为什么会报这个错呢,主要还是因为vue升级的时候,v-el在vue2.x以后被淘汰.使用新的标签ref替换v-el,接下来 ... 
- 01-学前入门.Net 能做什么
			桌面应用程序 Winfrom(.Net开发的桌面应用程序叫Winfrom应用程序) Internet应用程序 ASP.NET (.Net开发的Internet应用程序叫ASP.N ... 
- Varnish与Squid的对比
			Varnish与Squid的对比 说到Varnish,就不能不提Squid.Squid是一个高性能的代理缓存服务器,它和Varnish相比较有诸多的异同点,下面进行分析. 下面是Varnish与Squ ... 
- Mybatis 删除多条数据XML SQL语句删除
			Mybatis 删除多条数据XML SQL语句删除 1.删除多条数据SQL写法 <delete id="deleteParamsByIds"> delete from ... 
- 厄拉多塞筛法和普通方法求素数表(python实现)
			厄拉多赛筛法(sieve of Eratosthenes): 想要得到一个不大于N的数所有素数,可以先找到不超过根号N的所有素数,设2 = p1 < p2 < ......<pk ≤ ... 
- 将mnist数据集存储到本地文件
			参考文章: http://www.csuldw.com/2016/02/25/2016-02-25-machine-learning-MNIST-dataset/ import numpy as np ... 
- asp.net 链接数据库ADO.NET
			web.config <configuration> <connectionStrings> <add name="constr" connectio ... 
- Idea下Python开发平台的搭建
			1. python的下载 https://www.python.org/downloads/ 2. idea下python插件的安装 点击File->Settings...->Plugin ... 
