「java顺序表的插入删除」顺序表的删除代码
本篇文章给大家谈谈java顺序表的插入删除,以及顺序表的删除代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java使用顺序表制作电子通讯录,实现添加,删除和排序的功能.
- 2、用java写个顺序表插入算法的实现?
- 3、如何用JAVA语言建立含有若干个元素的顺序表,并实现插入,删除,查找等基本操作
- 4、用Java语言编写数据结构中顺序表的插入删除查找代码并实现
- 5、【数据结构】线性表(包括有序表)在顺序表和链表上的插入、删除、逆置操作算法
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顺序表的插入删除和顺序表的删除代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。