详谈线性表的有关操作(Java、C两种语言)

之前在学习线性表一章的时候,,有些地方都是比较含糊的带过,只是把一些比较难理解的地方花了好长时间才明白。。。。然后写出代码,存在博客上面。从今天开始,将重新把数据结构这本书走一遍,用C和Java两种语言,尽量把每个部分都可以用代码实现一遍,使印象更加深刻,也算是重新学习一下C语言啦~~。而且现在新学期开始学Oracle啦,也会把一些学习过程中的代码以及重点难点记录下来,希望大家会关注哦~~

线性表的概念都在之前的文章有提到,今天来说一下有关线性表的具体操作(数组实现),分为以下几个部分

1.ListMakeEmpty()建立空表

2.ElementTypeFindK(int *k , List L)根据位序 K 返回相应元素。

3.int Find(ElementType X,List L)线性表中查找 X 第一次出现的位置

4.void Insert(ElementType X,int i,List L)在位序 i 之前插入一个元素 X

5.void Delete(ElementType X,int i, List L)删除

Java篇:

/** * 有关线性表的操作 * * @author DY1201zhangshuyou * * 1.查找X的第一次出现的位置 * 2.根据位序返回相应的元素 * 3.Insert * 4.Delete */public class ListTestDemo01 {private int A[];private int nElem;public ListTestDemo01(int maxSize) {A = new int[maxSize];nElem = A.length;}/** * 查找X的第一次出现的位置 */public int Find(int X, int[] A) {int i = 0;for (; i <= A.length; i++) {if (i <= A.length && A[i] == X) {return i;}}return -1;}/** *根据位序返回相应的元素 */public int FindElem(int elem , int[] A){for(int i = 0; i <= A.length; i++){while(i == elem){return A[i – 1];}}return 0;}/** * Insert:把X插入第i个位置,就应该把i – 1后面的元素全部向后移动,并使数组的长度加1 * @param i * @param A */public void Insert(int X ,int i , int[] A){int j;if(i == A.length){ //表空间已满,不能插入System.out.println("数组已满");return; //return表示中止当前函数的运行,并将操作权返回给调用者。}if(i < 1 && i > A.length + 1){//检查插入位置的合理性System.out.println("位置不合法");return;}for(j = A.length – 1;j > i -1; j–)A[j] = A[j – 1];A[i] = X;return;}/** * Delete:删除指定位置i的元素 * @param i * @param A */public void Delete(int i , int[] A){int j;if(i > A.length || i < 1){System.out.println("超出数组的长度");}else{for(j = i;j < A.length -1 ;j++){A[j] = A[j + 1];}}}public void display() {for (int i = 0; i < nElem; i++) {System.out.println(A[i]);}}public static void main(String args[]) {ListTestDemo01 test = new ListTestDemo01(7);int[] A = new int[] { 10, 12, 21, 3, 4, 5, 6 };test.Insert(7, 2, A);System.err.println(test.FindElem(1, A));System.err.println(test.FindElem(4, A));System.out.println(test.Find(21, A));System.out.println();test.Delete(2, A);for(int i = 0;i < A.length – 1;i++){System.out.print(A[i] + " ");}}} C语言篇: 稍后放上C语言代码。。稍安勿躁咯~

生活中若没有朋友,就像生活中没有阳光一样

详谈线性表的有关操作(Java、C两种语言)

相关文章:

你感兴趣的文章:

标签云: