脚本宝典收集整理的这篇文章主要介绍了Sequential And Linked Lists - 顺序表 和 链表 - 顺序表部分 - java,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1. 顺序表和链表,都属于数据结构的一部分。
2. 数据结构:C的数据结构 和 JAVA 的数据结构,有什么不一样?
数据结构 只是一个单独的学科。和语言没有关系。
语言的不同,只是决定了实现同一种逻辑的方法不同而已。
3. 数据结构:逻辑非常严谨的一门学科,要向学号数据结构
必须做到两点 :1.多画图 , 2.多写代码 (别抄)
线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,
常见的线性表:顺序表、链表、栈、队列、字符串...
线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。
可以这么去理解 顺序表 是一个面向对象的数组。但是一个数组是不能自己面向对象,我们需要提供一些方法,来对数组进行增删查改。
那么把数组这些方法(只用写一次) 和 数组 作为属性 放到一个类里面,将来我用这个类去new对象的时候,
通过这个对象我们可以去调用这些方法,去操作数组,这不就是面向对象嘛。
简单来说 顺序表 就是 对一个数组进行增删查改。
一个普通数组,我们也可以创建一些方法区操作它,但它始终面向不了对象。而且我们每次都需要为数组写操作方法。
静态顺序表:使用定长数组存储。
动态顺序表:使用动态开辟的数组存储
静态顺序表适用于确定知道需要存多少数据的场景.
静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用
相比之下动态顺序表更灵活, 根据需要分配动态的空间大小
public void add(int pos, int data) {
// 1.
if(pos<0||pos>this.usedSize){
System.out.PRintln("pos的位置不合法!");
return;
}
// 2.
dilatation();
// 3.
for (int i = this.usedSize-1; i >= pos; i--) {
this.array[i+1]=this.array[i];
}
// 4.
this.array[pos] = data;
this.usedSize++;
}
// 扩容
public void dilatation(){
if(this.array.length == this.usedSize){
this.array = Arrays.copyOf(this.array,this.array.length*2);
}
}
public class SequentialAndLinkedLists {
public static void main(String[] args) {
MySequentialList mySequentialList = new MySequentialList();
// 通过 在 pos 位置新增元素 的功能 来给 数组赋值
mySequentialList.add(0,1);
mySequentialList.add(1,2);
mySequentialList.add(2,3);
mySequentialList.add(3,4);
mySequentialList.add(4,5);
mySequentialList.display();// 打印显示
System.out.println(mySequentialList.size());// 打印有效元素个数
}
}
以上是脚本宝典为你收集整理的Sequential And Linked Lists - 顺序表 和 链表 - 顺序表部分 - java全部内容,希望文章能够帮你解决Sequential And Linked Lists - 顺序表 和 链表 - 顺序表部分 - java所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。