博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性表___顺序表示和实现
阅读量:6141 次
发布时间:2019-06-21

本文共 3757 字,大约阅读时间需要 12 分钟。

以下涉及到的算法,都是关于线性表的顺序表示和实现这部分的算法题目

 

1 package com.linearList;  2   3 import java.util.ArrayList;  4 import java.util.Iterator;  5 import java.util.LinkedList;  6 import java.util.List;  7   8 /**  9  * @author MJC 10  *2018年2月13日 11  * 上午11:05:42 12  */ 13 public class LinearListTest { 14  15     public static void main(String[] args) { 16         LinearListTest llt = new LinearListTest(); 17          18         int[] arrayA = {1, 3, 5,8,9,12,13,15}; 19         int[] arrayB = {2, 4, 6,7,10,11,15,16}; 20         int[] arrayC = new int[16]; 21         int[] result = new int[16]; 22          23         List
linkList = new LinkedList
(); 24 linkList.add(1); 25 26 //定位元素的位置 27 System.out.println(llt.locateElem(arrayA,8)); 28 //删除第i个元素 29 result=llt.listDelete(arrayB,3); 30 for (int i = 0; i < result.length; i++) { 31 System.out.print(result[i]+","); 32 } 33 System.out.println("======================="); 34 //在第i元素之前 插入一个元素insertElem, 35 result = llt.listInsert(arrayA,4,6); 36 37 for (int i = 0; i < result.length; i++) { 38 System.out.print(result[i]+","); 39 } 40 System.out.println(); 41 System.out.println("====分割线===="); 42 43 //非递减有序线性表,合并成一个非递减有序线性表 44 arrayC = llt.Mergelist(arrayA,arrayB,arrayC); 45 for (int i = 0; i < arrayC.length; i++) { 46 System.out.print(arrayC[i]+","); 47 48 } 49 System.out.println(); 50 System.out.println("========================"); 51 List
La = new ArrayList
(); 52 List
Lb = new ArrayList
(); 53 La.add(1); 54 La.add(2); 55 La.add(3); 56 57 Lb.add(2); 58 Lb.add(5); 59 Lb.add(6); 60 Lb.add(6); 61 //存在于Lb但是不存在于La中的数,存入到La 62 System.out.println(llt.union(La,Lb)); 63 64 } 65 /** 算法 2.6 66 * 定位元素的位置 67 * @param array 68 * @param elem 69 * @return 70 */ 71 public int locateElem(int[] array,int elem){ 72 for (int i = 0; i < array.length; i++) { 73 if(array[i] == elem){ 74 return i+1; 75 } 76 } 77 return -1; 78 } 79 /** 算法 2.5 80 * 删除第i个元素 81 * @param array 82 * @param i 83 * @return 84 */ 85 public int[] listDelete(int[] array,int i){ 86 int[] tempArr = new int[16]; 87 for (int j = 0; j < array.length; j++) { 88 if(j
i-1){ 91 tempArr[j-1] = array[j]; 92 } 93 } 94 95 return tempArr; 96 } 97 /** 算法 2.4 98 * 在第i元素之前 插入一个元素insertElem, 99 * @param arr100 * @param i101 * @param insertElem102 * @return103 */104 public int[] listInsert(int[] arr,int i,int insertElem){105 int lenth=arr.length;106 if(i<1||i>=lenth){107 try {108 throw new Exception("位置不合法");109 } catch (Exception e) {110 e.printStackTrace();111 }112 }113 //临时数组,最终数组114 int[] temp = new int[17];115 for (int j = 0; j < i-1; j++) {116 temp[j]=arr[j];117 }118 for (int j = i-1; j < temp.length; j++) {119 if(j < lenth){120 temp[j]=arr[j];121 }122 }123 for (int j = arr.length; j >= i-1; j--) {124 temp[j+1] = temp[j];125 }126 temp[i-1] = insertElem;127 return temp;128 }129 /** 算法 2.2130 * 非递减有序线性表,合并成一个非递减有序线性表131 * @param arrayA132 * @param arrayB133 * @param arrayC134 * @return135 */136 public int[] Mergelist(int[] arrayA,int[] arrayB,int[] arrayC){137 138 int LaLenth = arrayA.length;139 int LbLenth = arrayB.length;140 int i = 0, j = 0, k = 0;141 while(i < LaLenth && j
union(List
La,List
Lb){172 for (Iterator
iterator = Lb.iterator(); iterator.hasNext();) {173 Integer item = (Integer) iterator.next();174 if(item!=null){175 if(!La.contains(item)){176 La.add(item);177 }178 }179 }180 return La;181 }182 }

 

转载于:https://www.cnblogs.com/dreamHighMjc/p/8461676.html

你可能感兴趣的文章
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>