美文网首页
[数据结构] __ 两个关于顺序表的小练习

[数据结构] __ 两个关于顺序表的小练习

作者: 葛木小舍先生丶 | 来源:发表于2019-05-08 12:25 被阅读0次
  • 顺序表有序排列,使插入元素自动插入到合适的位置,
  • 删除从某个元素开始的n位元素.

  • 定义一个顺序表类,并实现所需要的方法.
/**
 * 声明一个顺序表类,
 */
class SeqList{
    private int len=0;  // 声明一个变量来标注元素长度,并初始化为0.
    private int[] a = new int[10];  // 数组,
    // 构造方法
    SeqList(){
    }
    // 插入方法,使插入的数自动按递减顺序排列输出.分解思路,可以先将元素进行尾插入,然后进行一次排序.
    void insert(int ainsert) {
        // 使用尾插入插入元素
        a[len] = ainsert;
        len++;
        // 这里使用的是最简单的选择排序.
        for (int i = 0; i < a.length - 1; i++) { // 控制循环的轮次,总共需要n-1次.
            int min = i; // 声明成员变量,用来储存最小元素的下标.
            for (int j = i + 1; j < a.length; j++) { // 内层for循环,j=i+1是为了将序列分开为i表示的已排列,和i+1及之后的未排列两部分,
                if (a[j] > a[min]) {  // 判断条件,在未排列(即i+1之后的序列.)序列里找到最小元素
                    min = j; // 将最小元素的下标保存到成员变量min中.
                }
            }
            if (min != i) {  // 判断条件,判断最小元素是否和当前首位元素相同,
                // 交换位置.
                int temp = a[i];
                a[i] = a[min];
                a[min] = temp;
            }
        }
    }
    // 删除方法,删除从某点起后的n位元素.(即删除a+1到a+n位数.)我们采用移位赋值的方式进行删除操作.
    void delete(int start,int Number){
        if(start<=0 || start>len){
            System.out.println("开始位置错误");
        }else if ((start+Number)>len){
            System.out.println("没有足够可供删除的元素");
        }else
        {
            for (int j=start;j<len-Number;j++){  // 通过for循环重新给数组赋值.
                a[j+1] = a[j+Number+1];
            }
            len-=Number;
        }
    }
    // 声明输出数组方法.
    void tostring(){
        for (int i=0;i<len;i++){
            System.out.print(a[i]+",");
        }
        System.out.println("表长:"+len);
    }
}

测试类,声明主方法,new对象进行测试.

public class SequenceList {
    public static void main(String[] args) {
        SeqList seqList = new SeqList();
        System.out.println("插入元素按顺序排列:");
        seqList.insert(5);
        seqList.insert(6);
        seqList.insert(3);
        seqList.insert(1);
        seqList.insert(9);
        seqList.insert(7);
        seqList.insert(2);
        seqList.insert(10);
        seqList.tostring();
        System.out.println("删除指定位后的指定位元素:");
        seqList.delete(2,2);
        seqList.tostring();
    }
}

结果:

image.png

更新时间:
2019-5-8
12:25

相关文章

  • [数据结构] __ 两个关于顺序表的小练习

    顺序表有序排列,使插入元素自动插入到合适的位置, 删除从某个元素开始的n位元素. 定义一个顺序表类,并实现所需要的...

  • 【数据结构】线性表之单链表

    完整代码需结合前面一篇顺序表数据结构学习-线性表之顺序表各种操作网易云课堂小甲鱼课程链接:数据结构与算法 线性表的...

  • 带头结点的链表

    1、链表和顺序表 链表是很常见的数据结构,链表总是会和线性顺序表来比较。 1.1、顺序表 具有随机存储的特性,给定...

  • 2.6 数据结构 --1.4 链表

    数据结构子目录https://www.jianshu.com/p/a344fa483655 顺序表 顺序表按照存储...

  • Java造轮子-数据结构-线性表

    数据结构-线性表 @(数据结构) 线性表是数据结构中的逻辑结构。可以存储在数组上,也可以存储在链表上。 顺序表(数...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 【数据结构】单链表(Singly Linked List ) &

    更多精彩尽在微信公众号【程序猿声】 数据结构-线性表|顺序表|链表(中) 本节纲要 预备知识 顺序表(Sequen...

  • 数据结构-线性表

    [TOC] 线性表-List list是最简单的数据结构,可分为顺序表与链表,顺序表内部数据存储由数组实现,链表则...

  • python中的树数据结构

    线性数据中的典型顺序表和链表已经讲完: 《顺序表数据结构在python中的应用》 《python实现单向链表数据结...

  • josephus问题

    线性表是数据结构的中很常见的结构,其中一种就是顺序表,python已经内置了顺序表。list就是循序表的的实现。下...

网友评论

      本文标题:[数据结构] __ 两个关于顺序表的小练习

      本文链接:https://www.haomeiwen.com/subject/unrmoqtx.html