亿元级IT行业生态链
一站式解决方案提供商

24小时免费咨询电话
010-52725243

新闻资讯

AJIA NEWS

阿甲:关于java开发中链表的总结及作用

来源:阿甲视点 发布日期:2018-02-12

Java开发过程中链表是经常被用到的一种工具。通常Java程序员都是使用链表结构来克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大等。以下就是阿甲科技Java程序员在阿甲科技Java开发项目中常用到的链表的代码和优缺点,希望对Java程序员有所帮助。


一、链表的作用


1、实现数据元素的存储按一定顺序储存,允许在任意位置插入和删除结点。

2、包括单向结点,双向结点,循环接点

3、c/c++/jave都可以实现

二、链表的优缺点


优点、链表实现数据元素储存的顺序储存,是连续的


缺点、因为含有大量的指针域,所以占用空间大,同时因为只有头结点(后面说明)是明确知道地址的,所以查找链表中的元素需要从头开始寻找,非常麻烦。


三、代码的实现


结点格式

struct 结点的类型名

{

数据成员的定义;

struct 结点类型名 *指针名;

}

先建立一个链表结点结构(以学生链表为例)

struct student

{

string name;

float score;

struct studeng *next;

}

typedef student NODE;

1、头结点

链表的第一个结点,不储存数据,为方便查询设立的结点。若头结点指针域为空,链表为空。

NODE *newp,*head,*p;

newp=new student;

head=newp;

head->next=NULL;

2、创建新结点

newp=new student

3、插入新结点

void InsertNode(NODE *p,NODE *newp)

{

newp->next=p->next;

p-next=newp;

}

4、删除结点

void DelNode(NODE *p)

{

NODE *q;//临时结点

if(p->next!=NULL){

q=p->next;

p->next=q->next;

delete q;

}

}

5、查询(按关键字小于key)

NODE *Search(NODE *head,int key)

{

NODE *p;

p=head;

while(p->next!=NULL)

{

if(p->next->scorce

return p;

p=p->next;

}

return p;

免责声明:本文由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除

欢迎访问阿甲科技集团官方网站!