博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现带有头结点的单链表的增删改查!
阅读量:3962 次
发布时间:2019-05-24

本文共 2459 字,大约阅读时间需要 8 分钟。

Java实现带有头结点的单链表的增删改查!

在这里就不解释了,代码里有注释很容易看懂的!

package List;/** * @author ganxiang * @IDE IntelliJ IDEA * @project_name JavaDemo * @filename SingalList * @date 2020/02/24 */public class SignalList {
class DefineNode{
//创建带头结点的链表,head->data1->data2->data3 int data; DefineNode next; public DefineNode(int d){
this.data=d; } } DefineNode head; public void insret_one(int dex){
//插入一个节点 if(head==null){
head =new DefineNode(dex); System.out.println(head.data); } } DefineNode temp ; public DefineNode insert_many(){
//插入多个节点,这里插入6个 for (int i=10;i<=15;i++){
if (temp==null) {
temp = new DefineNode(i); } else {
DefineNode node =temp; while (node.next!=null){
node=node.next;//找到尾结点 将值赋给尾结点 } node.next=new DefineNode(i); } } return temp; } public int getSize(DefineNode t) {
//计算链表的长度 int size=0; while(t!=null){
size++; t=t.next; } return size; } public int printList(DefineNode t){
//打印链表 while (t!=null){
System.out.println(t.data); t=t.next; } return 0; } public DefineNode addFirst(int data,DefineNode t){
//插入链表中的第一个节点(头结点) DefineNode node = new DefineNode(data); if (t ==null){
t=node; } else{
node.next =t; t =node;// printList(t); } return t; } public void addLast(int data){
//插入链表中的最后一个节点(尾节点) DefineNode node =new DefineNode(data); DefineNode t=temp; if (t ==null){
t=node; } else{
while (t.next!=null){
// System.out.println(t.data); t =t.next; } t.next =node; } } public DefineNode inset_index(DefineNode t, int k,int data){
//指定索引插入节点 int size =getSize(t); if (k<1||k>size)System.out.println("无法插入数据!"); else{
if (k==1)return addFirst(data,t); else {
// if(t==null){
// t =new DefineNode(data);// } if (k ==size){
addLast(data); } else {
int count =1; DefineNode tt=t;//保证头结点不变 while(tt!=null&&count
getSize(a))System.out.println("不符合链表的操作范围!"); else {
if (k==1)return delFirst(a); else if (k==getSize(a))return delLast(a); else {
while (a != null && count
getSize(a))System.out.println("不在操作范围!"); else {
if (k==1)return upsataFirst(data,a); else if (k==getSize(a))return updataLast(data,a); else {
int count =1; DefineNode s =new DefineNode(data); while (a.next!=null&&count

运行展示

指定修改第5个节点的值为200.
在这里插入图片描述
这里只展示了一个运行的结果,你们可以多调试看看,我运行都没错误的,若有错误之处恳请各位大佬多多指点。

转载地址:http://qhqzi.baihongyu.com/

你可能感兴趣的文章