数组实现链表
1 建立一个节点类LinkNode
package com0415数组变为链表;
//定义一个链表节点类
public class LinkNode {
//节点中存的数据
public Object data;
//指向下一个节点
public Object next;
}
2 建立一个链表类LinkList
添加toLink,printLinkList方法
/**
* 将数组变为链表存储形式
* @param s:需要转化为链表的数组
* @return ln:单项链表的头节点
*/
public LinkNode toLink(String[] s) {
//建立新节点
LinkNode ln=new LinkNode();
ln.data=s[0];
LinkNode m=ln;
for(int i=1;i<s.length;i++){
//建立一个暂存节点信息的节点
LinkNode tem=new LinkNode();
tem.data=s[i];
m.next=tem;
m=(LinkNode) m.next;
}
return ln;
}
/**
* 输出链表
* @param root:根节点
* @return:根节点
*/
public LinkNode printLinkList(LinkNode root){
if(root!=null){
LinkNode ln=root;
System.out.println("数据是:"+ln.data);
ln=(LinkNode) ln.next;
printLinkList(ln);
}
return root;
}
3 定义主函数[/size]
实例化LinkList ll;
实例化LinkNode ln;
实例化数组并赋初值s;
调用toLink()方法——————————ln=ll.toLink(s);
调用printLinkList()方法——————————ll.printLinkList(ln);
分享到:
相关推荐
哈希表的操作时间复杂度为o(1),但失去了可比较性实现的哈希表要求键必须为可比较的对象,Java8之后当哈希冲突达到一定程度后每个位置会从链表变成红黑树。 在线段树中,不考虑添加元素,即区间固定,假设区间有n个...
然后知道jdk1.8出来以后,HashMap做性能优化修改,底层数据结构变成了数组+链表+红黑树,性能上也有了很大改变(但还是并发问题,可能这也是为了追求性能而不改的,因为在JUC包下已经有了可以支持并发的HashMap-...
链表 将一个数组变成一个无状态的链表。 npm install @skidding/linked-list或yarn add @skidding/linked-list 以了解用法。
1.8 之后 hashMap 的数据结构发生了变化,从之前的单纯的数组+链表结构变成数组+链 表+红黑树。也就是说在 JVM 存储 hashMap 的 K-V 时仅仅通过 key 来决定每一个 entry 的存 储槽位(Node[]中的 index)。并且 ...
如果将节点变为数组,将会常熟优化。vector链表实现。原创; 拥有iterator,begin,end,rbegin,rend,operator[],push_back,pop_back,push_front,pop_front,size等海量函数以及STL函数支持,也支持RE判断!
/生成一个长度为21的数组,依次...//将上述链表变为单向封闭(循环)链表;从头结点开始数,将第17个结点删除,将它的下一个结点作为新的头结点;重复上述过程, //直到该链表中只剩一个结点,显示该结点中存入的数字。
判断链表是否为回文链表 leetcode CTCI #Leetcode 自交 移动零将数组中的零移向末尾而不改变元素的原始位置 反转树 旋转树中的所有节点,使左节点变为右节点,右节点变为左节点。 从 LL 中删除节点 从 LL 中删除一个...
已知一棵完全二叉树存放于一个一维数组T[n]中,T[n]中存放的是各结点的值。下面的程序的功能是:从T[0]开始顺序读出各结点的值,建立该二叉树的二叉链表表示。 【函数2】 #include typedef struct ...
数组也是用来存储数据的,与链表相比,需要初始化时确定长度。一个数组内的数据都是同一类型。在Java中,ArrayList是通过数组实现,而LinkedList则通过链表实现。一个简单的链表类如下: 2.二叉树 二叉树是n(n>...
19_信息系统框架集成第三方产品案例_集成框架变成类方式_传智扫地僧 20_信息系统框架集成第三方产品案例_几个重要的面向对象思想_传智扫地僧 21_作业 文档和源码 01_上一次课程回顾 02_数组指针语法梳理 03_函数指针...
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 Leetcode题目对应位置: 面试题06:从尾到头打印链表 思路 1:改变链表方向 将链表中链接节点的指针反转过来,改变链表的方向,然后从头到尾...
链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构(D)?【北方交通大学 2001 一、1(2分)】 A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?(A )【北方交通大学...
本书大部分章节中都列举并介绍了应用实例,如用AVL树等容器实现的搜索引擎、用数组实现HOOK管理、用链表实现的短信息系统中的CACHE管理、用哈希表实现WebServer中的CACHE文件管理和用哈希AVL树实现抗DoS/DDoS攻击等...
是由链表和数组组合而成的基本数据结构 ,k-v 存储,允许null key 和null value 初始容量 1 << 4 16 扩容因子 0.75f 即 容量 * 扩容因子 为可存储做多数据,超过会扩容 成原来的 2 倍 增加时考虑 ...
例:若程序执行时,输入字符串为:Shanghai Dianji University,从键盘上输入字符:s,则输出后变为:Shanghai Dianji Univerity,如果输入的字符串不存在,则字符串照原样输出。 (9)编写一个函数void fun(char a...
请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为’C’,’h’,’i’,’n’,’a’,经过运算,使c1,c2,c3,c4,c5的值分别变为’G’,’l’,’m’,’r’,’e’,并输出。 4 3.8例2.6能否改成...
队列存储方式:顺序存储(数组)和链式存储(链表); 队列作用:维持顺序——广度优先搜索 (转载自铜梁熊文) 采用循环队列可以减少空间浪费。首先规定一个队列长度maxn,这样两个基本操作变为: 入队:rear=(rear...
内容包括:C语言基础、变量和数据类型、运算符、条件结构、循环结构、数组、指针、函数、字符串、结构体、编译预处理、位运算、数据结构和算法初步、编译与运行、高质量变成规范、文件操作、软件漏洞、链表
用OOP创建的示例系统ParkingLot-停车场系统设计二叉树二叉树的插入和创建深度优先和宽度优先将列表变成二叉树查找二叉树深度倒二叉树将二叉树转换为链接列表贪婪算法-优化问题的算法给出最小变化问题最小数组子序列...
内容及步骤: 1、 设有一个线性表(e0,e1,e2,e3,…,en-2,en-1)存放在一个一维数组A[arraySize]中的前n个数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原地址内容置换为(en-1,en-2,…,e3,...