zoukankan      html  css  js  c++  java
  • 线性表基本操作实现

    写在前面数据结构与算法篇开始,分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~

    一个犹豫不决的灵魂,
    奋起抗击无穷的忧患,
    而内心却又矛盾重重,
    真实生活便就是如此。
    .
    算法设计编程的重心,
    数据结构程序的灵魂!


    基于《数据结构》(c 语言版) 严蔚敏 描述,主要使用Java实现

    常用基本操作

    参考课本 p19

    DestoryList

    package DataStructures.BaseDo;
    
    public class DestoryList {
    
        // 主函数测试
        public static void main(String[] args) {
            int [] arr ={2,4,7,6} ;
           int [] result= delete(arr) ;
            System.out.println(result);    // 数组的地址
            for (int i = 0; i <result.length ; i++) {
                System.out.println(result[i]);
            }
    
        }
    
        public static  int[]  delete(int [] arr){
            for (int i = 0; i <arr.length ; i++) {
                arr[i] = 0 ;
            }
            return arr ;
        }
    }
    
    

    解释:销毁线性表,使其内元素为0
    在这里插入图片描述

    ListEmpty

    package DataStructures.BaseDo;
    
    public class ListEmpty {
        public static void main(String[] args) {
            int [] a = {0,0} ;
            int [] b ={3,5,7} ;
            int [] c ={} ;    // 判断数组为空的方法  长度为空
    
            System.out.println(fun(a));
            System.out.println(fun(b));
    //        System.out.println(c.length);
            System.out.println(fun(c));
        }
    
        // 判断是否为空表函数
        public static Boolean fun(int [] arr){
            boolean flag = false ;
            for (int i = 0; i <arr.length ; i++) {
    
    
                if(arr[i] == 0){
                    flag = true;
                }
    
            }
            if(arr.length == 0){
                flag = true;
            }
          return flag ;
        }
    }
    
    

    解释 : 判断线性表是否为空,根据情况返回true/false
    在这里插入图片描述

    GetElem

    package DataStructures.BaseDo;
    
    public class GetElem {
        public static void main(String[] args) {
            int [] a= {1,3,4,6,8,9} ;
            // 主函数测试·
            System.out.println(Elem(a,3));
        }
        public static int Elem(int [] arr,int n){
    
            return  arr[n] ;
        }
    }
    
    

    解释: 返回线性表第i个值
    在这里插入图片描述

    ListInsert

    package DataStructures.BaseDo;
    
    // 实现在表中插入数据
    public class ListInsert {
        // 插入函数
        public static long[] insert(long[] arr, int i, long l) {
            //新建数组,对原数组扩容
            long[] arr1 = new long[arr.length + 1];
            //将原数组数据赋值给新数组
            for (int j = 0; j < arr.length; j++) {
                arr1[j] = arr[j];
            }
            //将大于i的数据向后移动一位   j 为原数组中最后一个
            for (int j = arr1.length - 2; j > i; j--) {
                arr1[j + 1] = arr1[j];
            }
    
            //赋值到i位置
            arr1[i + 1] = l;
            return arr1;
        }
    
        //测试
        public static void main(String[] args) {
            long[] arr = {12, 25, 11, 36, 14};
            long[] arr1 = insert(arr, 3, 100);
            for (long l : arr1) {
                System.out.print(l + " ");
            }
        }
    }
    

    解释: 在线性表第i位置插入元素
    在这里插入图片描述

    ListDelete

    package DataStructures.BaseDo;
    
    public class ListDelete {
        public  static long[] delete (long[] arr, int i){
            long [] arr1 = new long[arr.length-1] ;
    
    
            for (int j = 0; j <arr1.length ; j++) {
                // 判断数组是否越界
                if(i<0 || i>arr1.length){
                    throw  new RuntimeException("数组越界......") ;
                }
                if(j<i){
                    arr1[j] = arr[j] ;
                }else {
                    arr1[j]=arr[j+1] ;
                }
            }
            System.out.println("已删除"+arr[i]);
            return  arr1 ;
        }
        public static void main(String[] args) {
            long[] arr = {12, 25, 11, 36, 14};
            long[] arr1 = delete(arr, 0);
            for (long l : arr1) {
                System.out.print(l + " ");
            }
        }
    }
    
    

    解释: 删除线性表第i位置的元素
    在这里插入图片描述

  • 相关阅读:
    Python eval 函数妙用
    502与504故障分析与解决方法
    [转]谈谈select, iocp, epoll,kqueue及各种网络I/O复用机制
    计算阶乘n!末尾0的个数
    C++中的Overload、Override和Overwrite
    C++中的空类与空结构体大小
    多线程编程之优先级翻转问题
    数据库原理之事务(二)
    数据库原理之事务(一)
    NoSQL之基础篇
  • 原文地址:https://www.cnblogs.com/lzhCreate/p/13831641.html
Copyright © 2011-2022 走看看