java单链表构建代码 java单链表和双链表的区别( 四 )


希望对你有帮助 。
JAVA构建单链表,输入与输出问题;代码如图所示,请帮忙解决空指针异常,原因是nul对象索引调用方法/属性造成的
这里是发生在main方法的linklist.insert(input.nextInt());这一行代码的,执行该行代码的时候,先执行input.nextInt()等待输入,输入并且回车后抛出上面的异常java单链表构建代码;是由于在执行完括号里面的input.nextInt()方法并得到输入的参数后,接着执行insert方法并传入输入的参数 。
在public
void
insert(int
date){...}方法中
p=p.ringt;改行代码抛出异常
因为p此时=null
也就是p
=
null.right;
null调用属性抛出异常
为什么呢,在Linklist
linklist
=
new
Liknlist();的时候
会执行构造方法
public
Linklist(){
p=first;
}
java单链表构建代码你的目的是为java单链表构建代码了给p赋一个值,让java单链表构建代码他能够调用方法/属性
但是你忘了first也没有任何指向,它也是null
所以p=first=null;
不知道java单链表构建代码我这么说你明白吗?
1、编程实现单链表的建立、插入、删除和查找算法,语言采用C或JAVA等 。/*P33用头插法建立带头结点的单链表*/
#include
"stdio.h"
#define
NULL
#define
LEN
sizeof(linklist)
typedef
struct
node
{int
data;
struct
node
*next;
}linklist;
linklist
*head;
void
hhead_creat()/*用头插法建立带头结点的单链表*/
{int
x;
linklist
*p;
head=(struct
node*)malloc(LEN);
head-data=https://www.04ip.com/post/-999;
head-next=NULL;
printf("\n\n\t\t请随机输入一组正整数以0作为结束符:\n\n\t\t");
scanf("%d",x);
while(x!=0)
{
p=(struct
node*)malloc(LEN);
p-data=https://www.04ip.com/post/x;
p-next=head-next;
head-next=p;
scanf("%d",x);
}
}/*hrear_creat*/
void
print_linklist(head)/*打印该链表*/
linklist
*head;
{linklist
*p;
int
n=0;
p=head-next;
printf("\n\n\t\t");
while(p!=NULL)
{
printf("%5d",p-data);
p=p-next;
n=n+1;
if((n+1)%10==0)
printf("\n\t\t");
}
}/*print_linklist*/
main()
{hhead_creat(head);
print_linklist(head);
}
关于java单链表构建代码和java单链表和双链表的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读