用java实现一个数据结构!

作者&投稿:赵恒 (若有异议请与网页底部的电邮联系)
求教,用java写一个数据结构作业~

用ArrayList写Stack吧,最简单的
import java.util.ArrayList;import java.util.EmptyStackException; public class MyStack { private ArrayList al; public MyStack() { al = new ArrayList(); } public void push(E item) { al.add(item); } public E pop() { if (!isEmpty()) return al.remove(size()-1); else throw new EmptyStackException(); } public boolean isEmpty() { return (al.size() == 0); }public E peek() { if (!isEmpty()) return al.get(size()-1); else throw new EmptyStackException(); } public int size() { return al.size(); } @Overridepublic String toString() {return "MyStack [al=" + al.toString() + "]"; }}

线性表跟是不是数组没关系啊。。。栈和队列都是线性表吧。。不太懂你的意思。。
public class SeqList {
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4,5,6,7};
int[] b = new int[]{3,5,8,9};
int[] c = new int[a.length + b.length];
new SeqList().seqListMerge(a, b, c);
}

public void seqListMerge(int[] a, int[] b, int[] c){
//i为数组a的计数器
int i = 0;
//j为数组b的计数器
int j = 0;
//k为数组c的计数器
int k = 0;
//判断两个数组长度,当一个先用完的时候推出循环
while(i < a.length && j < b.length){
if(a[i] > b[j]){
c[k] = b[j];
k++;
j++;
}else{
c[k] = a[i];
k++;
i++;
}
}
//如果a数组先到结尾,那么把b数组的剩下的值拼到c里
if( i == a.length){
while(j < b.length){
c[k] = b[j];
k++;
j++;
}
}
//如果b数组先到结尾,那么把a数组的剩下的值拼到c里
if(j == b.length){
while(i < a.length){
c[k] = a[i];
k++;
i++;
}
}

for(int p : c){
System.out.println(p);
}
}
}

import java.io.IOException;
import java.util.Scanner;

public class LinkList {
private static Scanner san = new Scanner(System.in);

public static void main(String[] args) throws IOException {
List list = new List();
for (int i = 1; i <= 10; i++) {
System.out.print("请输入第" + i + "个数: ");
list.add(san.nextInt());
list.print();
}
System.out.println("输入的数据如下: ");
list.print();
}
}

class node {
int data;
node next = this; // 指向自己
}

class List {
private node header = new node();

// 循环链表的尾部添加数据
public node add(int data) {
node current = new node();
node temp = header;
while (temp.next != header)
temp = temp.next;
current.data = data;
current.next = temp.next;
temp.next = current;
return current;
}

// 查询某个数字的位置 如果不在 返回-1;
public int search(int data) {
node temp = header;

int n = 0;
while (temp.next != header) {
temp = temp.next;
n++;
if (temp.data == data)
break;
}
if (temp.data == data)
return n;
else
return -1;
}

// 打印出整个链表
public void print() {
node temp = header;
while (temp.next != header) {

temp = temp.next;
System.out.print(temp.data + " ");
}
System.out.println();
}

// 插入数据
public node Insert(int pos, int data) {
node temp = header;
node current = new node();
for (int i = 0; i < pos - 1; i++) {
if (temp.next != header) {
temp = temp.next;
} else
return null;
}
current.data = data;
if (temp.next != header) {
current.next = temp.next;
}
temp.next = current;
return current;
}

// 删除某个数据
public node del(int data) {
node temp = header;
node oldtemp = null;
node current = null;
while (temp.next != header) {
oldtemp = temp;
temp = temp.next;
if (temp.data == data) {
current = temp;
break;
}
}
if (current == header)
return null;
oldtemp.next = current.next;
return current;
}
}

http://blog.csdn.net/shmilyhe/archive/2009/09/09/4533780.aspx
这是我写的单向链表


编写java程序实现一个一维int数组a[]={23,76,45,21,63,90,46,83}求...
90, 46, 83 };System.out.println("最大值:" + at.max(a) + "\\t最小值:" +at.min(a) +"\\t平均值:"+at.sum(a)\/a.length+"\\t和为:"+ at.sum(a));}public int max(int[] a) {int num = a[0];for (int i = 1; i < a.length; i++) {if (num < a[...

用JAVA编写代码:写一个名字,有三个整型参数,实现在控制台输出三个数...
以下是一个用Java编写的实现在控制台输出三个数平均值的代码:public class Main { public static void main(String[] args) { String name = "Alice"; \/\/ 定义名字 int a = 2, b = 4, c = 6; \/\/ 定义三个整型参数 double avg = (a + b + c) \/ 3.0; \/\/ 计算平均值 System....

java如何实现从一个整型数组中随机取一个数
就一步,很简单的 int[] temp = { 1, 2, 3, 4, 5, 123, 213, 123, 213, 21, 321321 };int index = (int) (Math.random() * temp.length);\/\/ 随机数乘以数组长度,那么它的取值就在0-length之间 System.out.println(temp[index]);...

JAVA怎样实现该程序产生随机数
num1=new JTextField(10);num2=new JTextField(10);run=new JButton("生成");reset=new JButton("重置");save=new JButton("保存");JPanel p1=new JPanel();p1.add(new JLabel("员工编号"));p1.add(num1);p1.add(new JLabel("取数个数"));p1.add(num2);JPanel p2=new J...

编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判...
import java.util.Scanner;public class Count { public static void main(String[] args) { Scanner in = new Scanner(System.in);int i = in.nextInt();int count = 0;while(i != 0){ i \/= 10;count++;} System.out.println(count);} } ...

java怎样实现判断一个最高达1000位数字的整数是不是3的倍数。
能被3整除的数的特征:各个数位上的数相加之和必定为3的倍数。import java.util.Scanner;public class Main{ public static void main(String[] args) { try (Scanner sc = new Scanner(System.in)) { while (sc.hasNext()) { String num = sc.next(); int sum ...

java求解,怎么实现输人一个以0结尾的数值序列,以0表示输入结束!题目...
while的条件判断是当输入为0时,结束循环。并用了list的sort方法。import java.util.ArrayList;import java.util.Scanner;public class Test {public static void main(String[] args) {ArrayList<Integer> numList=new ArrayList<Integer>();Scanner in=new Scanner(System.in);int a;while((a=in....

java中如何实现一个三位数的个位、十位、百位分别表示出来?
java中两种不同的分离十位、个位的方式 \/\/获取最高位(百位)b = a \/ 100;获取十位c=(a%100)\/10; 或者c = (a \/ 10) % 10;获取个位d=a%10; 或者 d = a % 100 % 10;

Java 编写程序实现给一个不多于5位的正整数,求它是几位数,并且逆序打印...
public static void convert(int num) {if (num < 0) {System.out.println("输入一个正整数!");return;}\/\/ 求位数int step = 1;int result;int temp = 10;while (true) {result = num \/ temp;if (result > 0) {temp *= 10;step++;} else {System.out.println("位数:" + ...

java 中如何在一个循环中输入一个数
public class Test { public static void main(String args[]) throws IOException { \/\/ 创建数组,从控制台读入数据 double[] array = new double[10]; for (int i = 0; i < 10; i++) { BufferedReader br = new BufferedReader(new InputStreamReader()); String str...

沈丘县17670717109: 数据结构在java里如何实现? -
郅类引阳: 首先Java没有指针(为了安全和方便编程).其次数据结构和指针无关,和语言也无关.Java封装好了各种基本的数据结构 比如:数组,队列,Stack,HashTable,HashSet,HaspMap等等 你说的顺序表 Java中你可以用:ArrayList 这个类:例子: http://wenwen.sogou.com/z/q743351429.htm 如果你自己想用Java裸写一个类似功能的类可以参考这个:http://hi.baidu.com/jadmin/blog/item/785e81994f453b096e068ca5.html

沈丘县17670717109: 数据结构 JAVA -
郅类引阳: java,其实囊括了很多方方面面.就好比我们说计算机专业,一个总称,但是里面分类很多很细.每个分类都是一个很有深度和广度的领域.java需要用到数据算法.这部分要看具体的领域.比如大数据处理,或者一些加密解密之类的,需要有高效的算法来支撑,这个有点像科研.同样,其余的java方面可能对算法和数据结构的依赖没这么强,很多成熟的东西,路子基本都是一样.数据结构,这个我提供不了太多的建议,我本身是做java的,数据结构在学校学过,现在都忘了.周围也接触不到哪个行业用这个.

沈丘县17670717109: 怎么用java实现图中的数据结构 -
郅类引阳: 用编程实现图的存储一般有常见的有两种方式,第一种是邻接链表、第二种就是邻接矩阵.邻接链表就是将图中的每一个点都单独作为一个单独链表的起点,为每个顶点保存一个链表.链表的每一个节点都记录了与之相邻的节点的信息.邻接矩阵就是将图转换成一个二维数组,数组的x和y均表示图中每个节点到其他节点的连接状况,能连通用一种状态表示,不能连通用另外一中方式表示,这样就形成了一个笛卡尔积.也就是一个二维数组.

沈丘县17670717109: Java中定义数据结构如何实现? -
郅类引阳: 你用的是结构体,是数据结构的一种.不能说Java里没有数据结构.在Java里可以用类表示,其实Java的类在C中也可以实现,加方法指针就OK.数据结构是数据在计算机里面的存储,读写和组织方式,不要和结构体搞混了.再次说明,Java存在数据结构,它是计算机的基本概念.

沈丘县17670717109: 用java实现数据结构“栈 -
郅类引阳: Java栈的实现 public class MyStack { //定义一个堆栈类 int[] array; //用int数组来保存数据,根据需要可以换类型 int s_size; //定义堆栈的宽度 public MyStack(int i){ //定义一个带参数构造器 array=new int[i]; //动态定义数组的长度 s_size=0; //堆...

沈丘县17670717109: 数据结构可以用Java来处理吗? -
郅类引阳: 数据结构是可以使用java语言来处理的.数据结构只是一种数据组成、更好的处理的一种思想,可以运用各种算法来保存数据,比如链表、顺序存储、树存储等等,这些算法都可以通过各种程序语言来进行实现的.

沈丘县17670717109: java如何表示数据结构 -
郅类引阳: 一、List接口,有序的Collection接口,精确地控制每个元素插入的位置,允许有相同的元素1.链表,LinkedList实现了List接口,允许null元素,提供了get()、remove()、insert()方法.[java] view plaincopy public void add() {LinkedList List = new ...

沈丘县17670717109: 表达式求值 数据结构 java实现 -
郅类引阳: 1. 定义优先级和优先级表 Java代码 /*** 运算符优先权*/ public enum Precede {/*** 优先权高*/LARGER,/*** 优先权低*/LESS;/*** 优先级表* + - * /* + > >* - > >* * > > > >* / > > > >*/private static Precede[][] precedes = new ...

沈丘县17670717109: java如何实现链表 -
郅类引阳: 链表是一种重要的数据结构,在程序设计中占有很重要的地位.C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指针,所以有人认为在Java语言中不能实现链表,其实不然,Java语言比C和C++更容易实现链表结构.Java...

沈丘县17670717109: java中有哪些数据结构 -
郅类引阳: 数据结构:①数组 (Array)在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来.这些按序排列的同类数据元素的集合称为数组.在C语言中, 数组属于构造数据类型.一个数组可以分解为多个数组元素,这...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网