public class List<E> { //定义一个新数组 Object[] src=new Object[0]; /** * 添加元素 * @param s 要添加的元素 */ public void add(E s){ //定义一个新数组 Object[] nsrc=new Object[src.length+1]; //复制数据 for(int i=0;i<src.length;i++){ nsrc[i]=src[i]; } //添加新元素 nsrc[src.length]=s; //原数组指向新数组 src=nsrc; } /** * 查找 * @param index 所查元素的下标 * @return 所查元素 */ public E get(int index){ E s=(E)src[index]; return s; } /** * 数组的长度 * @return 返回数组的长度 */ public int size(){ return src.length; } /** * 按照下标删除 * @param index 删除元素的下标 */ public void delete(int i){ //定义一个新数组 if(src.length==0){ System.out.println("sssssssssssss"); } Object[] que1=new Object[src.length-1]; //把下标为index之前的元素复制到新数组中 que1[i]=src[i]; //原数组指向新数组 src=que1; } }
/** * 链表 * @author zll * */ public class List { //定义一个头指针 private JNode head=null; //记录链表中的数据个数 private int nCount =0; /** * 默认在最后插入 * @param 所插入的节点 */ public void add(JNode node){ add(nCount,node); } /** * 在pos处插入节点 * @param pos 插入节点的位置 * @param node 插入的节点 */ public void add(int pos,JNode node){ //如果输入错误 if(pos<0||pos>nCount){ System.out.println("输入错误,请重新输入"); return ; } //如果链表为空 if(nCount==0){ head=node; nCount++; return ; } JNode temp=head; //temp表示pos前一个位置的节点 for(int i=0;i<pos-1;i++){ temp=temp.Next; } node.Next=temp.Next; temp.Next=node; nCount++; } /** * 链表长度 * @return 链表长度 */ public int size(){ return nCount; } /** * 得到数据 * @param i 得到第i个数据 * @return 返回数据 */ public JNode get(int i){ if(nCount==0){ System.out.println("链表中没有数据,请先输入数据"); return null; } if(i<0||i>nCount){ System.out.println("输入错误"); return null; } //如果只有一个数据 if(nCount==1){ JNode temp=head; temp.nValue=head.nValue; temp.Next=null; return temp; } else{ JNode fence=head; for(int j=0;j<i;j++){ fence=fence.Next; } JNode temp=new JNode(); temp.nValue=fence.nValue; temp.Next=null; System.out.println("temp.nValue"+temp.nValue); return temp; } } /** * 默认移除最后一个 */ public void removed(){ remove(nCount-1); } /** * 移除特定位置的元素 * @param i 移除元素的位置 * @return 返回移除元素 */ public JNode remove(int nPos){ //如果输入的数字过大或过小 if(nPos<0||nPos>nCount-1){ System.out.println("输入错误,请重新输入"); return null; } //如果链表中没有元素 if(nCount==0){ System.out.println("链表中没有元素,请输入元素"); return null; } //如果链表中只有一个元素 if(nCount ==1){ head=null; JNode node=head; nCount=0; return node; } //如果要删除头结点 if(nPos==0){ JNode temp=head.Next; head.Next=null; JNode tmp=head; head=temp; return tmp; } //其他情况 JNode temp=head; for(int i=0;i<nPos-1;i++){ temp=temp.Next; } JNode tmp=temp.Next; temp.Next=temp.Next.Next; return tmp; } }
public class JNode { public JNode Next; public int nValue; }
public class TreeNode { public TreeNode leftchild; public TreeNode rightchild; public int nValue; }
/** * 创造树的相关方法 * @author zll * */ public class CreatTree { private int y=0; public TreeNode root; /** * 添加nValue * @param nValue 添加的数 */ public void add(int nValue){ //新建一个树节点,使其值为nValue TreeNode temp=new TreeNode(); temp.nValue=nValue; //如果树为空,新增加的树节点为根 if(root==null){ root=temp; return ; } //如果不为空,则从根节点往下寻找加入点 add(root,temp); } /** * 新增节点 * @param head 从head开始往下遍历 * @param temp 新增节点 */ public void add(TreeNode head,TreeNode temp){ //如果数值小于head节点,就放在左孩子上 if(temp.nValue<head.nValue){ //如有左孩子,继续遍历 if(head.leftchild!=null) add(head.leftchild,temp); //如果没有左孩子,加在左孩子上 else head.leftchild=temp; } //如果数值大于head节点,就放在右孩子上 if(temp.nValue>=head.nValue) { //如果有右孩子,继续遍历 if(head.rightchild!=null) add(head.rightchild,temp); //如果没有右孩子,加在右孩子上 else head.rightchild=temp; } } //先序遍历 public void xian(TreeNode head1){ if(head1!=null){ System.out.println(head1.nValue); xian(head1.leftchild); xian(head1.rightchild); } return; } }
您还没有登录,请您登录后再发表评论
在计算机科学中,数组和链表是两种基本的数据结构,它们都广泛应用于软件开发和算法设计中。然而,数组和链表有着根本的区别,这些区别决定了它们在不同的场景下的应用。 数组 数组是一种连续存储的数据结构,即...
Python列表是一个非常常用的数据结构,但是它究竟是数组还是链表实现的?在Python中,列表是使用链表结构实现的,但是在某些情况下,也可以使用数组结构来实现。那么,为什么Python列表要使用链表结构,而不使用数组...
在计算机科学中,数组和链表是两种基本的数据结构,它们之间有着很大的不同,影响着程序的性能和效率。本文将从遍历数组和链表的角度,比较它们之间的差异,探讨数组和链表的优缺点,并分析为什么数组的速度要比链表...
随机访问是指可以直接访问数组或链表中的任何元素,而不需要遍历整个数据结构。例如,vector 中可以使用迭代器 i = v.begin() + N,得到第 N+1 个元素的迭代器,可以直接跳到要访问的位置。而链表则不是随机访问,想...
Python算法中,数组和链表是两种常用的数据结构。它们都是用于存储和管理数据的,但是它们在实现和使用上有很大的区别。 数组是具有相同的数据类型且按一定次序排列的集合体。它的元素在内存中的地址是连续相邻的...
3-软件课程设计补充知识-数组和链表 数组和链表.ppt
本篇文章主要探讨的是两种基本的数据结构——数组与链表。通过对比它们的特点、优缺点以及适用场景,帮助读者更好地理解何时选择哪种数据结构更为合适。 #### 数组与链表概述 **数组**是一种常见的数据结构,它是...
数组和链表是两种基本的数据结构,它们各自有其独特的优缺点,适用于不同的场景。下面将详细介绍这两种数据结构以及它们的区别。 首先,数组是一种线性数据结构,它将元素在内存中连续存放,每个元素占用相同的内存...
"数据结构:数组和链表的区别以及各自的优缺点" 数据结构是计算机科学中研究的基本概念之一,数组和链表是两种最基本的数据结构形式。它们在计算机科学和其他相关领域中发挥着重要的作用。 数组是将元素在内存中...
数组和链表是两种基本的数据结构,它们在内存管理和数据操作上有着显著的不同,这些差异影响了它们在特定场景下的效率和适用性。 数组是一种线性的数据结构,它在内存中占据连续的空间。这意味着所有元素的地址是...
数组和链表是数据结构中最基础的两种数据组织方式,它们在计算机科学和软件工程领域中具有广泛的应用。数组是一种线性数据结构,它由相同类型的元素组成,这些元素通过数组元素的下标进行访问和操作。链表则是一种非...
在计算机科学中,数组和链表是两种基本的数据结构,它们都是线性表的实现方式,但它们有着不同的存储结构和访问方式,从而导致不同的使用场景。 数组是一种连续存储的数据结构,即在内存中连续存储的。数组的优点是...
"c语言数组与链表转化-分别用数组和链表实现堆栈(C语言版)" 本资源主要讲解了使用C语言实现堆栈的两种方法:使用数组和链表。堆栈是一种常用的数据结构,它可以用来实现递归算法、表达式求值、语法分析等。 第一...
在数据结构中,数组、链表、队列、栈是四种常用的数据结构,它们之间有着紧密的联系,但同时也存在着许多区别。本文将详细介绍数组、链表、队列、栈的区别和联系。 一、数组和链表的区别 数组和链表都是线性表数据...
数组、链表、队列、栈数据结构特点,各自优点和缺点 在计算机科学中,数据结构是指用于组织和存储数据的方式。常见的数据结构包括数组、链表、队列、栈等。每种数据结构都有其特点、优点和缺点,本文将对这些数据...
在计算机科学中,数组与链表是最基础也是最重要的两种数据结构。它们各自拥有独特的特点和应用场景,掌握这两种数据结构的区别对于理解和解决实际问题至关重要。 #### 二、基于空间的考虑 **1. 数组** 数组是一种...
数组和链表是两种最基本且常用的数据结构,各自有着独特的特性和应用场景。 数组是一种线性数据结构,它在内存中占据一块连续的空间。数组的大小在创建时即被固定,无法动态扩展或收缩。数组的每个元素占用相同大小...
C++中的链表是数据结构中非常重要的一部分,而在链表中,我们可以使用数组来模拟链表的结构。今天,我们将讨论如何使用数组来模拟链表,并实现链表的插入和遍历操作。 首先,我们需要了解链表的基本结构。链表是一...
数据结构顺序表、链表和数组是逻辑结构还是物理(存储)结构? 数据结构是计算机科学中的一门重要学科,它研究的是计算机中数据的组织、存储和处理方式。数据结构可以分为逻辑结构和物理结构两种。 逻辑结构是指...
数组和链表作为两种基础的线性数据结构,在实际编程中有着广泛的应用。本文将深入探讨数组和链表的内部机制、性能特点、适用场景以及它们在现代编程语言中的实现方式。 数组和链表各有优势和局限,它们在不同的应用...
相关推荐
在计算机科学中,数组和链表是两种基本的数据结构,它们都广泛应用于软件开发和算法设计中。然而,数组和链表有着根本的区别,这些区别决定了它们在不同的场景下的应用。 数组 数组是一种连续存储的数据结构,即...
Python列表是一个非常常用的数据结构,但是它究竟是数组还是链表实现的?在Python中,列表是使用链表结构实现的,但是在某些情况下,也可以使用数组结构来实现。那么,为什么Python列表要使用链表结构,而不使用数组...
在计算机科学中,数组和链表是两种基本的数据结构,它们之间有着很大的不同,影响着程序的性能和效率。本文将从遍历数组和链表的角度,比较它们之间的差异,探讨数组和链表的优缺点,并分析为什么数组的速度要比链表...
随机访问是指可以直接访问数组或链表中的任何元素,而不需要遍历整个数据结构。例如,vector 中可以使用迭代器 i = v.begin() + N,得到第 N+1 个元素的迭代器,可以直接跳到要访问的位置。而链表则不是随机访问,想...
Python算法中,数组和链表是两种常用的数据结构。它们都是用于存储和管理数据的,但是它们在实现和使用上有很大的区别。 数组是具有相同的数据类型且按一定次序排列的集合体。它的元素在内存中的地址是连续相邻的...
3-软件课程设计补充知识-数组和链表 数组和链表.ppt
本篇文章主要探讨的是两种基本的数据结构——数组与链表。通过对比它们的特点、优缺点以及适用场景,帮助读者更好地理解何时选择哪种数据结构更为合适。 #### 数组与链表概述 **数组**是一种常见的数据结构,它是...
数组和链表是两种基本的数据结构,它们各自有其独特的优缺点,适用于不同的场景。下面将详细介绍这两种数据结构以及它们的区别。 首先,数组是一种线性数据结构,它将元素在内存中连续存放,每个元素占用相同的内存...
"数据结构:数组和链表的区别以及各自的优缺点" 数据结构是计算机科学中研究的基本概念之一,数组和链表是两种最基本的数据结构形式。它们在计算机科学和其他相关领域中发挥着重要的作用。 数组是将元素在内存中...
数组和链表是两种基本的数据结构,它们在内存管理和数据操作上有着显著的不同,这些差异影响了它们在特定场景下的效率和适用性。 数组是一种线性的数据结构,它在内存中占据连续的空间。这意味着所有元素的地址是...
数组和链表是数据结构中最基础的两种数据组织方式,它们在计算机科学和软件工程领域中具有广泛的应用。数组是一种线性数据结构,它由相同类型的元素组成,这些元素通过数组元素的下标进行访问和操作。链表则是一种非...
在计算机科学中,数组和链表是两种基本的数据结构,它们都是线性表的实现方式,但它们有着不同的存储结构和访问方式,从而导致不同的使用场景。 数组是一种连续存储的数据结构,即在内存中连续存储的。数组的优点是...
"c语言数组与链表转化-分别用数组和链表实现堆栈(C语言版)" 本资源主要讲解了使用C语言实现堆栈的两种方法:使用数组和链表。堆栈是一种常用的数据结构,它可以用来实现递归算法、表达式求值、语法分析等。 第一...
在数据结构中,数组、链表、队列、栈是四种常用的数据结构,它们之间有着紧密的联系,但同时也存在着许多区别。本文将详细介绍数组、链表、队列、栈的区别和联系。 一、数组和链表的区别 数组和链表都是线性表数据...
数组、链表、队列、栈数据结构特点,各自优点和缺点 在计算机科学中,数据结构是指用于组织和存储数据的方式。常见的数据结构包括数组、链表、队列、栈等。每种数据结构都有其特点、优点和缺点,本文将对这些数据...
在计算机科学中,数组与链表是最基础也是最重要的两种数据结构。它们各自拥有独特的特点和应用场景,掌握这两种数据结构的区别对于理解和解决实际问题至关重要。 #### 二、基于空间的考虑 **1. 数组** 数组是一种...
数组和链表是两种最基本且常用的数据结构,各自有着独特的特性和应用场景。 数组是一种线性数据结构,它在内存中占据一块连续的空间。数组的大小在创建时即被固定,无法动态扩展或收缩。数组的每个元素占用相同大小...
C++中的链表是数据结构中非常重要的一部分,而在链表中,我们可以使用数组来模拟链表的结构。今天,我们将讨论如何使用数组来模拟链表,并实现链表的插入和遍历操作。 首先,我们需要了解链表的基本结构。链表是一...
数据结构顺序表、链表和数组是逻辑结构还是物理(存储)结构? 数据结构是计算机科学中的一门重要学科,它研究的是计算机中数据的组织、存储和处理方式。数据结构可以分为逻辑结构和物理结构两种。 逻辑结构是指...
数组和链表作为两种基础的线性数据结构,在实际编程中有着广泛的应用。本文将深入探讨数组和链表的内部机制、性能特点、适用场景以及它们在现代编程语言中的实现方式。 数组和链表各有优势和局限,它们在不同的应用...