package 队列;
public class List<E> {
//新建一个数组
private Object old []=new Object [0] ;
/**
* 在数组末尾添加元素
* @param num
*/
public void add(E num){
//新建一个新数组
Object news []=new Object [old.length+1];
//将老数组复制到新数组里
for(int i=0;i<old.length;i++){
news[i]=old[i];
}
//在最后再加入这个新元素
news[news.length-1]=num;
//把新数组赋给老数组,替代后,老数组加上了元素
old=news;
}
/**
* 删除元素
* @param local 要删除的元素位置
*/
public void delete(int local){
int label;//要删除的元素下标
label=local-1;//下标等于位置号减1
//新建一个新数组
Object news []=new Object[old.length-1];
//将要删除的元素之前的元素复制,放入新数组
for(int i=0;i<label;i++){
news [i]= old [i];
}
//将下标label之后的数组复制,放入新数组,以老数组为参照物
for(int i=label+1;i<=old.length-1;i++){
news[i-1]=old[i];
}
//将新数组赋给老数组,老数组成功删减
old=news;
}
/**
* 在某位置插入某元素
* @param local
* @param num
*/
public void insert(int local,E num){
int label;//要插入的元素下标
label=local-1;//下标等于位置号减1
//新建一个新数组,比之前多一个位置
Object news []=new Object[old.length+1];
//将要插入的元素之前的元素复制,放入新数组
for(int i=0;i<label;i++){
news [i]= old [i];
}
//将要插入的新元素放进要插入的位置
news[label]=num;
//将下标label之后的数组复制,放入新数组,xin数组为参照物
for(int i=label+1;i<news.length;i++){
news[i]=old[i-1];
}
//将新数组赋给老数组,老数组成功删减
old=news;
}
/**
* 修改老数列某个值
* @param local
* @param num
*/
public void modify(int local,E num){
int label;//要xiugai的元素下标
label=local-1;//下标等于位置号减1
//新建一个新数组,和以前的数组一样的位置
Object news []=new Object[old.length];
//将要插入的元素之前的元素复制,放入新数组
for(int i=0;i<label;i++){
news [i]= old [i];
}
//将新元素放进要换掉的位置
news[label]=num;
//将下标label之后的数组复制,放入新数组,以新数组为参照物
for(int i=label+1;i<news.length;i++){
news[i]=old[i];
}
//将新数组赋给老数组,老数组成功删减
old=news;
}
/**
* 获取某个位置的值
*/
public E getvalue(int local){
return (E)old[local-1];
}
/**
* 获取队列的长度(大小)
*/
public int getsize(){
return old.length;
}
}
package 队列;
public class Mytest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list=new List();
list.add(1);
list.add(14);
list.add(18);
list.add(10);
list.add(19);
list.add(2);
list.add(15);
list.add(7);
list.add(13);
list.add(10);
list.insert(5, 19);//???
// list.delete(5);
list.modify(1, 90);
for(int i=1;i<=list.getsize();i++){
System.out.println(list.getvalue(i));
}
}
}
打印结果为:90
14
18
10
19
19
2
15
7
13
10
分享到:
相关推荐
本项目专注于实现顺序存储和链式存储的泛型队列,使用C语言作为编程工具,旨在提供灵活且高效的操作接口。下面我们将深入探讨相关知识点。 首先,队列是一种先进先出(First In First Out, FIFO)的数据结构,它的...
标题中的“支持多线程和泛型的阻塞队列”意味着我们讨论的是一个能够同时处理多个线程并能存储不同类型数据的队列实现。 ### 阻塞队列的基本概念 阻塞队列(Blocking Queue)是线程安全的数据结构,它结合了队列的...
本实例重点讲解了泛型顺序队列和泛型循环队列,这两种队列都是C#中实现队列数据结构的有效方式。 首先,泛型在编程中是指能够处理多种数据类型的类、接口或方法。在C#中,我们可以通过使用`<T>`来声明一个泛型类型...
试用java.util.Stack泛型栈作为父类,用另一个泛型栈对象作为成员变量,模拟实现一个泛型子类Queue,当存储元素的第1个栈的元素超过dump时,再有元素入队列就倒入第2栈。除提供无参构造函数Queue( )外,其它所有队列...
在C#编程中,泛型优先队列是一种特殊的数据结构,它结合了队列和堆的概念,用于存储具有优先级的元素。优先队列通常按照优先级高低来处理元素,最高优先级的元素会被最先处理。这个数据结构在处理需要快速访问最高...
本资源摘要信息涵盖了C#编程语言的基础知识点,包括泛型队列的设计、迭代器方法的应用、枚举器类的实现等。 一、泛型队列的设计 在C#中,泛型队列是指可以存储不同类型元素的队列。通过设计泛型队列,可以实现队列...
在编程领域,数据结构是构建高效算法的基础,而线性表、栈和队列是最基本且重要的数据结构。本文将详细探讨如何在Java或C#等支持泛型的语言中,为JWList和JWArray类加入泛型支持,以实现更加灵活和强大的功能。 ...
- **Queue**、**Stack** 和 **SortedList, TValue>**:这些集合分别对应于它们同名的非泛型版本,提供队列、栈和排序列表的功能。 #### 五、泛型示例 为了更好地理解泛型的用法,让我们看一个具体的示例。假设我们...
泛型队列遵循先进先出(FIFO)原则,使用`Enqueue`方法添加元素到队尾,`Dequeue`方法移除并返回队首元素。`Queue<T>`实现了`ICollection<T>`和`IEnumerable<T>`接口。 6. **泛型栈(Stack)** 栈遵循后进先出...
LinkedList实现了List、Deque和Iterator接口,可以作为双端队列使用。 3. **HashSet**: 基于哈希表(HashMap)实现,存储不重复的元素。插入和查找速度较快,但无特定顺序。 4. **HashMap**: 是一个键值对的集合,...
1. 泛型容器:例如,自定义的堆栈、队列或者优先级队列等数据结构,利用泛型可以处理任何类型的数据,提高代码的复用性。 2. 泛型算法:比如排序、查找等算法,通过泛型,可以应用于不同类型的数据,无需为每种类型...
Queue接口则用于表示先进先出的数据结构,如队列。 泛型是Java集合框架的关键增强,它允许在声明集合时指定元素的类型,从而在编译时就能检查类型安全。例如,可以创建一个只包含String对象的ArrayList:`ArrayList...
- 数据结构和算法实现,如优先队列、图算法等。 - 编写可复用的工具函数,如排序、查找、拷贝等。 - 在设计模式中,如工厂模式、策略模式,利用模板可以实现类型无关的代码。 ### 7. 结论 VC++ 2005引入的泛型编程...
实例代码“MyTest”可能包含各种使用上述概念的例子,如创建泛型列表、排序、添加和删除元素、遍历集合以及队列和栈的操作。通过学习和理解这些实例,开发者可以更好地掌握C#中的泛型和集合用法,提升在ASP.NET Web...
### 集合与泛型知识点总结 #### 泛型概览 - **引入原因**:在Java 1.5及之后的版本中,引入了泛型这一特性,旨在提高集合类使用的安全性与灵活性。主要解决的问题包括: - **元素存储的安全性问题**:在非泛型...
泛型 , 栈 ,迭代器,队列
队列是一种重要的线性数据结构,它遵循“先进先出”(FIFO,First In First Out)的原则。在C++中实现队列可以借助数组、链表或者STL中的queue容器来完成。以下是对队列数据结构在C++中实现及其在银行接待系统仿真...
### Unity3D中的队列(Queue)方法解析...无论是非泛型队列还是泛型队列,都能够根据具体需求选择合适的方式来实现所需的功能。此外,了解队列的基本原理及其在Unity3D中的实际应用对于提高游戏开发效率具有重要意义。