java-JAVA关于顺序表操作的问题。求大牛

问题描述

JAVA关于顺序表操作的问题。求大牛
 public class StudScore {

    String name;
    int studentNo;
    double score;

    public StudScore() {

    }

    public StudScore(String name, int studentNo, double score) {
        this.name = name;
        this.studentNo = studentNo;
        this.score = score;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setStudentNo(int studentNo) {
        this.studentNo = studentNo;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getStudentNo() {
        return studentNo;
    }

    public double getScore() {
        return score;
    }

    public String toString() {
        return name + "," + studentNo + "," + score;
    }

}
================================================
public interface StudOPeration {

    void add(StudScore node);

    void listAll();

    void search(int index);

    int getCounts();

    void delete(int index);

    void search(String name);

}
==========================================
public class ArrStudent implements StudOPeration {

    StudScore stud[] = new StudScore[5];
    int count = 0;
    String name;

    public ArrStudent() {

    }

    public ArrStudent(int size) {

    }

    @Override
    public void add(StudScore node) {
        int i = count;
        stud[i] = node;
        count++;

        if (count == stud.length) {
            System.out.println("存储空间已满");
        }
    }

    @Override
    public void listAll() {
        for (int i = 0; i < count; i++) {
            System.out.print(stud[i].name + "t");
            System.out.print(stud[i].studentNo + "t");
            System.out.println(stud[i].score);
        }
    }

    @Override
    public void search(int index) {
        if (index <= count && index > 0) {
            System.out.println("您查找信息是:" + stud[index - 1]);
        } else {
            System.out.println("输入的序号无效!!");
        }
    }

    @Override
    public int getCounts() {

        return 0;
    }

    @Override
    public void delete(int index) {

    }

    @Override
    public void search(String name) {

    }

}

现在的问题就是实现了StudOPeration,但是如何获取学生记录个数,根据学生序号删除学生的记录,根据学生的姓名查询学生的记录,根据学生的姓名删除学生的记录。这几个不会做了。求大牛解答。跪谢!!

解决方案

遍历吧,筛选出stud[]中符合条件,数组的删除费点事。

解决方案二:

@Override
public int getCounts() {
System.out.println("现在共有"+count+"个学生");
return count;
}
/**
*尽量用list
*/
@Override
public void delete(int index) {
System.out.println("删除的学生是: "+stud[index-1].name);
stud[index-1]=null;
for(int i=0;i<stud.length-1;i++){
if(stud[i]==null){
stud[i]=stud[i++];//为空的后面的对象全部往前移一位
}
}
stud[stud.length-1]=null;//把最后一个赋值为null
}

@Override
public void search(String name) {
for(int i=0;i<stud.length;i++){
if(name.equals(stud[i].name)){
System.out.println("您要查询的"+name+"学生在第"+(i+1)+"位");
}else{
System.out.println("您要查询的"+name+"学生不存在");
}
}
}

解决方案三:

@Override
public void search(String name) {

for(int i=0;i<stud.length;i++){
if(stud[i]!=null &&name.equals(stud[i].name)){
System.out.println("您要查询的"+name+"学生在第"+(i+1)+"位");
}else{
System.out.println("您要查询的"+name+"学生不存在");
}
}
}

时间: 2024-09-08 10:19:30

java-JAVA关于顺序表操作的问题。求大牛的相关文章

java类的问题-java数据结构,线性表操作,C(X)=A(X)+B(X)多项式想加

问题描述 java数据结构,线性表操作,C(X)=A(X)+B(X)多项式想加 C(X)=A(X)+B(X)多项式想加.PolySLinkedList类增加C(X)=A(X)+B(X)多项式想加功能,算法实现不依赖于深拷贝,将A和B两条多项式单链表中的所以结点相加合并到新建的C多项式单链表,不改变A和B多项式单链表

数据结构 语言-关于顺序表操作的问题

问题描述 关于顺序表操作的问题 输入一组整形元素序列,建立顺序表.要求:(1)实现顺序表的遍历.查找.插入.删除:(2)实现将顺序表中所有奇数排在偶数之前,表的前面为奇数,后面为偶数: 解决方案 java实现: 这个顺序表可以封装两个TreeSet,一个放奇数,一个放偶数.遍历: 返回两个set的集合,先返回骑术的,再返回偶数的.查找: 先判断奇偶,然后直接到set里查,so easy.插入: 先判断奇偶,然后add到对应的set.删除: 同理. 解决方案二: http://blog.csdn.

新手求教-C数据结构顺序表操作问题

问题描述 C数据结构顺序表操作问题 两种操作方式一.利用点运算符访问 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef struct { int data[MAXSIZE]; //存放数组元素 int last; //数组的最后一个元素的下标 }squeuelist; squeuelist l={0};int main(void) { int choice=0 mount=0 i=0 dat=0 p

java数据结构实现顺序表示例_java

复制代码 代码如下: import java.util.Arrays;/** * 顺序线性表的实现 */public class LineList<E>{  private int size;   //长度 private Object[] array;  //底层数组 private final int default_length=16; //默认长度 /**  * 无参构造方法  */ public LineList(){  size = 0;  //使用默认长度构造数组  array

C++实现顺序表的常用操作(插入删出查找输出)_C 语言

实现顺序表的插入,删除,查找,输出操作在C语言中经常用到.下面小编给大家整理实现代码,一起看下吧 代码如下所示: #include<iostream> using namespace std; #define MAXSIZE 15 typedef int DataType; typedef struct { DataType data[MAXSIZE]; //通常用一位数组来描述顺序表的数据存储 int SeqLength; /*线性表长度*/ } SeqList; SeqList *Init

c语言实现顺序表的基本操作_C 语言

数据结构顺序表操作 复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <malloc.h>#define LIST_INIT_SIZE 100#define LISINCREMENT 10#define ElemType int#define Status inttypedef struct Sq{ ElemType *elem; int length; int listsize;}SqList;Statu

如何在C++中建立一个顺序表_C 语言

准备数据 复制代码 代码如下: #define MAXLEN 100 //定义顺序表的最大长度struct DATA{ char key[10]; //结点的关键字  char name[20]; int age;};struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保存顺序表的结构数组 int ListLen;   //顺序表已存结点的数量 }; 定义了顺序表的最大长度MAXLEN.顺序表数据元素的类型DATA以及顺序表的数据结构SLTyp

C/C++常用算法【C语言顺序查找(顺序表)】【2】

顺序表结构的存储方式非常容易理解,操作也十分方便.但是顺序表结构有如下一些缺点: 1.在插入或者删除结点时,往往需要移动大量的数据. 2.如果表比较大,有时难以分配足够的连续存储空间,往往导致内存分配失败,而无法存储. 后面会有链表结构的章节. 直接上代码,代码中有详细注释,请自己领悟 #include <stdio.h> #include <stdlib.h> #define MAXLEN 100 //定义顺序表的最大长度 typedef struct { char key[10

数据结构Java实现02----线性表与顺序表

[正文] 本节内容: 线性结构 线性表抽象数据类型 顺序表 顺序表应用   一.线性结构: 如果一个数据元素序列满足: (1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素: (2)第一个数据元素没有前驱数据元素: (3)最后一个数据元素没有后继数据元素. 则称这样的数据结构为线性结构.   二.线性表抽象数据类型: 1.线性表抽象数据类型的概念: 线性表抽象数据类型主要包括两个方面:既数据集合和该数据集合上的操作集合. 数据集合: 可以表示为a0,a1,a2,