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实现顺序链表的更多相关文章

  1. java实现顺序表、链表、栈 (x)->{持续更新}

    1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...

  2. java实现单链表的增删功能

    JAVA 实现单链表的增删功能 package linked; class LinkedTable{ } public class LinkedTableTest { public static vo ...

  3. JAVA数据结构之链表

    JAVA数据结构之链表 什么是链表呢? 链表作为最基本的数据结构之一,定义如下: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 简单来说呢,链 ...

  4. JAVA数据结构——单链表

    链表:一. 顺序存储结构虽然是一种很有用的存储结构,但是他有如下几点局限性:1. 因为创造线性表的时候已经固定了空间,所以当需要扩充空间时,就需要重新创建一个地址连续的更大的存储空间.并把原有的数据元 ...

  5. Java实现单链表的各种操作

    Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素   4.实现链表的反转   5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...

  6. Java初始化顺序

    package com.helei.init; class Log { public static String fatherStaticString(){System.out.println(&qu ...

  7. [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数

    Java初始化顺序1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包 ...

  8. java算法01 - 链表

    1.链表 在Java中实现链表,每个节点都有一个值,然后把它链接到下一个节点.下面来看一下节点的实现 class Node<E> { private E e; private Node&l ...

  9. JAVA按顺序播放多个wav音频

    用Java按顺序播放多个音频部件,不是同时播放.代码如下: List<String> files = new ArrayList<String>(); files.add(&q ...

随机推荐

  1. shell中的cat和文件分界符(<<EOF) (转)

    原文地址: http://blog.csdn.net/mosesmo1989/article/details/51123257 在shell中,文件分界符(通常写成EOF,你也可以写成FOE或者其他任 ...

  2. 变量的解构赋值--ES6

    1. 数组的解构赋值 基本用法 let [a, b, c] = [1, 2, 3]; let [a,,c] = [1,2,3]; let [a,...b] = [1,2,3]; // a=1; b=[ ...

  3. 【BZOJ 3809】 3809: Gty的二逼妹子序列 (莫队+分块)

    3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1728  Solved: 513 Description Autumn ...

  4. CountDownLatch源码分析

    CountDownLatch.Semaphore(信号量)和ReentrantReadWriteLock.ReadLock(读锁)都采用AbstractOwnableSynchronizer共享排队的 ...

  5. 浅谈JVM-类加载器结构与双亲委派机制

    一.类加载器结构 1.引导类加载器(bootstrap class loader) 它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar),是用原声代码来实现的,并不继承自ja ...

  6. [HTML]不让TD中的文本撑开表格(转)

    我经常会遇到这样的问题:在设计好宽度的表格中,因为有些文本信息过长,而把表格撑开(弄的面目全非)!很让人头疼.其实解决这个问题很简单,只要在<td>的样式中加入word-break: br ...

  7. 添加引用方式抛出和捕获干净的WebService异常

    转载:http://www.cnblogs.com/ahdung/p/3953431.html 说明:[干净]指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message ...

  8. mysql配置文件my.ini优化详解

    mysql 5.5.13参数说明:[client]character-set-server = utf8port = 3306socket = /data/mysql/3306/mysql.sock[ ...

  9. pytest文档3-pycharm运行pytest

    前言 上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻 ...

  10. s:iterator数据累加示例代码

    <s:set var="xs_heji" value="0" /> <s:set var="km_heji" value= ...