「java顺序表的插入删除」顺序表的删除代码

博主:adminadmin 2023-01-11 08:42:08 675

本篇文章给大家谈谈java顺序表的插入删除,以及顺序表的删除代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java使用顺序表制作电子通讯录,实现添加,删除和排序的功能.

翻了半天找到以前写的,只写了部分,你可以参考一下

public class Data {

private long stuNumber;

private String stuName;

private long stuScore;

public Data(){}

public Data(long stuNumber,String stuName,long stuScore){

this.stuNumber=stuNumber;

this.stuName=stuName;

this.stuScore=stuScore;

}

public void setStuNumber(long stuNumber){this.stuNumber=stuNumber;}

public void setStuName(String stuName){this.stuName=stuName;}

public void setStuScore(long stuScore){this.stuScore=stuScore;}

public long getStuNumber(){return stuNumber;}

public String getStuName(){return stuName;}

public long getStuScore(){return stuScore;}

}

public interface LinkListIntf {

public void initList();//初始化

public int size();//获得长度

public void insertData(int n,Data listdata);

public void getData(int n);

public void deleteData(int n);

public void printList();

}

public class ListTest {

public static void main(String[] args) {

int i;

Sqlist sq = new Sqlist();

Data pdata;

System.out.println("--------Start----------");

System.out.println("--------Init------------");

sq.initList();

System.out.println("--------Init Over--------");

Scanner sc = new Scanner(System.in);

System.out.println("输入元素:");

for (int m = 0; m 2; m++) {

Data data = new Data();

System.out.print("学号 姓名 分数:");

data.setStuNumber(sc.nextLong());

data.setStuName(sc.next());

data.setStuScore(sc.nextLong());

sq.insertData(sq.size()+1, data);

}

while (true) {

System.out.println("----请选择操作------");

System.out.print("1--插入;2--打印;3--删除;4--查找;5--结束");

int choose = sc.nextInt();

switch (choose){

case 1:

System.out.print("插入位置:");

int n = sc.nextInt();

Data data = new Data();

System.out.print("学号 姓名 分数:");

data.setStuNumber(sc.nextLong());

data.setStuName(sc.next());

data.setStuScore(sc.nextLong());

sq.insertData(n,data);

break;

case 2:

System.out.print("打印结果: ");

sq.printList();

break;

case 3:

System.out.print("请输入要删除的元素的位置: ");

int deleteLocation = sc.nextInt();

sq.deleteData(deleteLocation);

break;

case 4:

System.out.print("请输入要查询的元素的位置: ");

int findLocation = sc.nextInt();

System.out.print("元素内容是: ");

sq.getData(findLocation);

break;

case 5:

return;

}

}

}

}

public class Sqlist implements LinkListIntf{

public static final int MAX_LEN = 100;

public int listLength;

private Data[] listdata = new Data[MAX_LEN];

//初始化顺序表

public void initList(){this.listLength=0;}

public int size(){return this.listLength;}

public void insertData(int n,Data data){

int i;

if(listLengthMAX_LEN)

System.out.println("表满!");

if(n1 || nlistLength+1)

System.out.println("插入位置越界!");

for(i=listLength-1;i=n-1;i--)

listdata[i+1]=listdata[i];

listdata[n-1]=data;

listLength++;

return;

}

public void deleteData(int n){

if(n1 || nlistLength-1){System.out.println("删除位置不正确!");return;}

for(int i=n;ilistLength;i++)

listdata[i-1]=listdata[i];

listLength--;

System.out.println("----删除成功!-----");

return;

}

public void getData(int n){

if(n1 || nlistLength){System.out.println("查找不正确!");}

System.out.println(listdata[n-1].getStuNumber()+" "+listdata[n-1].getStuName()+" "+listdata[n-1].getStuScore());

//return 0;

}

public void printList(){

int i;

System.out.println("表中信息为:");

for(i=0;ilistLength;i++) {

String format = String.format(listdata[i].getStuName()+" "+listdata[i].getStuNumber()+" "+listdata[i].getStuScore());

System.out.println(format);

}

//return 0;

}

}

用java写个顺序表插入算法的实现?

int

insert(

struct

student

*head,

int

i

)

{

struct

student

*p,*q;

q

=

locate(

head,

i

);

/*调用链表定位函数,获取序号i结点的指针*/

if(q

==

NULL)

return

0;

/*找不到序号i对应的位置,返回0,表示插入失败*/

p=(struct

student*)

malloc(sizeof(struct

student));

/*申请新结点*/

printf

(

"Input

No:"

);

scanf

(

"%d",

p-

no

);

printf

(

"Input

Name:"

);

scanf

(

"%s",

p-

name

);

p-

next

=

q-

next;

/*新结点的next指针的处理*/

q-

next

=

p;

/*定位结点的next指针处理*/

return

1;

/*返回1,表示插入成功*/

int

delete

(

struct

student

*head,int

i

)

{

struct

student

*p,

*q;

/*调用链表定位函数,获取序号i结点的指针*/

q

=

locate

(

head,

i–

1

);

if

(

q

==

NULL

)

return

0;

/*找不到序号i-1对应的位置,返回0,表示删除失败*/

/*找序号i对应的位置*/

p

=

q

-

next;

if(p

==

NULL)

return

0;

/*找不到序号i对应的位置,返回0,表示删除失败*/

q-

next

=

p-

next;

free(p);

/*释放结点内存*/

return

1;

/*返回1,表示删除成功*/

如何用JAVA语言建立含有若干个元素的顺序表,并实现插入,删除,查找等基本操作

java 中的List接口就是顺序存储的集合机构,底层是用数组实现的,检索性能高,插入和删除性能较低,因为涉及到移位。代码简单演示:

ListInteger list = new ArrayListInteger(); // 定义一个用于存放整数的集合list,

list.add(100);

list.add(200);

list.add(300); // 将100,200,300 一次加入到list中

System.out.println(list.toString()); // 查看结果

int a = list.get(0) ; // 这将找出list中的第一个元素100,赋值给a

System.out.println(a); // 100

list.remove(2); // 删除list中的第三个元素

System.out.println(list.toString()); // 查看结果

------------------------------------------------------------------------------------------------------

比较粗略,详细内容请查看ArrayList 的 API 。祝你学习进步。

用Java语言编写数据结构中顺序表的插入删除查找代码并实现

public class Test {

public static void main(String[] args) {

int length = 5;

int ai = 1;

String data = "data";

String[] array = insertArrar(data, ai, length);

data = delArray(array, ai, length);

System.out.println(data);

}

public static String[] insertArrar(String data,int ai,int length){

String[] array = new String[length];

array[ai] = data;

return array;

}

public static String delArray(String[] array,int ai,int length){

String data = "";

data=array[ai];

array[ai]=null;

for(int i = 0; iarray.length;i++){

System.out.println(array[i]);

}

return data;

}

}

【数据结构】线性表(包括有序表)在顺序表和链表上的插入、删除、逆置操作算法

1)初始化指针p和q,分别指向链表中相邻的两个元素;

2)当p-next不为空时,做如下处理:

①若相邻两元素不相等时,p和q都向后推一步;

②否则,当相邻元素相等时,删除多余元素。

【算法源代码】

void Delete_Equal(LinkList *L)

{ p=(*L)-next;q=p-next; /*p和q指向相邻的两个元素*/

 while(p-next)

{ if(p-data!=q-data) /*若相邻两元素不相等时,p和q都向后推一步*/

{ p=p-next; q=p-next; }

else

{ while(q-data==p-data) /*当相邻元素相等时删除多余元素*/

 { r=q;

 q=q-next;

 free(r);

 }

p-next=q;p=q;q=p-next;

}/*else*/

}/*while*/

}/*Delete_Equal */

试设计一个算法,对带头结点的单链表实现就地逆置。

【算法分析】

1)空表或长度为1的表,不做任何处理;

2)表长大于2时,做如下处理:

①首先将整个链表一分为二,即从链表的第一元素结点处断开;

②逐个地把剩余链表的当前元素q插入到链表的头部。

【算法源代码】

void LinkList_reverse(LinkList L)

{ if(!L-next||!L-next-next) return;

 p=L-next; q=p-next; s=q-next; p-next=NULL; /*从链表的第一元素结点处断开*/

 while(s-next)

{q-next=p;p=q;

 q=s;s=s-next; /*把L的元素逐个插入新表表头*/

}

 q-next=p;s-next=q;L-next=s;

}/*LinkList_reverse*/

关于java顺序表的插入删除和顺序表的删除代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。