链表结构;
数据部分:保存的是该结点的实际数据
地址部分:保存的是下一个结点的地址
操纵数据:
public class DATA2 { String key; String name; int age; }
具体操作:
/** * 链表类 * @author Administrator * */ public class CLType { DATA2 nodeData=new DATA2(); CLType nextNode; /** * 在链表结构中追加结点的代码 * @param head * @param nodeData * @return */ CLType CLAddEnd(CLType head,DATA2 nodeData){ CLType node,htemp; if((node=new CLType())==null){ System.out.println("申请内存失败!\n"); return null; } else{ node.nodeData=nodeData;//保存数据 node.nextNode=null;//设置结点引用为空,即为表尾 if(head==null){ head=node; return head; } htemp=head; while(htemp.nextNode!=null){ htemp=htemp.nextNode; } htemp.nextNode=node; return head; } } CLType CLAddFirst(CLType head,DATA2 nodeData){ CLType node; if((node=new CLType())==null){ System.out.println("申请内存失败"); return null; }else{ node.nodeData=nodeData; node.nextNode=head;//指向头引用所指结点 head=node;//头引用指向新增结点 return node; } } CLType CLFindNode(CLType head,String key){ CLType htemp; htemp=head; while(htemp!=null){ if(htemp.nodeData.key.compareTo(key)==0){ return htemp; } htemp=htemp.nextNode;//处理下一个结点 } return null; } CLType CLInsertNode(CLType head,String findkey,DATA2 nodeData){ CLType node,nodetemp; if ((node=new CLType())==null) { System.out.println("申请内存失败"); return null; } node.nodeData=nodeData; nodetemp=CLFindNode(head, findkey); if(nodetemp!=null){ node.nextNode=nodetemp.nextNode; nodetemp.nextNode=node; }else{ System.out.println("未找到插入位置"); } return head; } int CLDeleteNode(CLType head,String key){ CLType node,htemp;//node保存删除结点的前一结点 htemp=head; node=head; while(htemp!=null){ if(htemp.nodeData.key.compareTo(key)==0){ node.nextNode=htemp.nextNode; htemp=null; return 1; }else{ node=htemp; htemp=htemp.nextNode; } } return 0; } int CLLength(CLType head){ CLType htemp; int Len=0; htemp=head; while(htemp!=null){ Len++; htemp=htemp.nextNode; } return Len; } /** * show all node */ void CLAllNode(CLType head){ CLType htemp; DATA2 nodeData; htemp=head; System.out.println("共有结点:"+CLLength(head)); while(htemp!=null){ nodeData=htemp.nodeData; System.out.println("("+nodeData.name+","+nodeData.age+")"); htemp=htemp.nextNode; } } }
嗯,经过对比,可以发现,线性表的操作中,主要是对数组的操作,而链表的操作呢?是对引用的操作,比如node,就理解为指向某一个结点的引用,然后node.noteData是指数据,node.nextNode是指指向下一个结点的引用.
然后就很好理解了.
相关推荐
用链表结构的有序表表示某商场家电的库存模型。当有提货或进货时 需要对该链表进行维护。每个工作日结束之后,将该链表中的数据以文 件形式保存,每日开始营业之前,需将以文件形式保存的数据恢复成链 表结构的有序...
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
这是c的链表很全的 可以帮我们做很多事情
C语言常见课后题目,完成基于链表结构的学生成绩管理系统
...
易语言简单UI框架链表结构源码,简单UI框架链表结构,加入组件成员,取组件子组件尾,取组件子组件首,置整数类成员,取整数类成员,创建,取This指针,IsWindow,SetProp,GetProp
链表结构在线性表中插入元素追加元素删除元素等程序
.链表结构.wmv .链表结构.wmv .链表结构.wmv.链表结构.wmv
关于数据结构课程设计的一些代码,希望能有帮助···········
QT代码实现list链表结构,资源中包含单向链表和双向链表
用链表结构的有序表示某商场家电部的库存模型。当有提货或进货时,对该链表及时进行维护。每个工作日结束后,将该链表中的数据以文件形式保存;每日开始营业前,需将以文件形式保存的数据恢复成链表结构的有序表。 ...
顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现
数据结构 二叉树链表结构 前序中序后序遍历
以前大一的时候自己学过的链表数据结构后,写的一个比较简陋的小游戏,大家可以对其进行修改实现自己想要的效果~~
哈弗曼编码实现的源代码,基于二叉树结构实现的
java数组扩容存储和java链表结构存储,恰同学少年,风华正茂,挥斥方遒
易语言源码简单UI框架链表结构易语言源码.rar 易语言源码简单UI框架链表结构易语言源码.rar 易语言源码简单UI框架链表结构易语言源码.rar 易语言源码简单UI框架链表结构易语言源码.rar 易语言源码简单UI框架链表...
pythonlist是数组还是链表实现的-数组和链表结构(python)-1 数组和链表.pdf
12二叉树树(链表结构).cpp
数据结构—刘小晶—例2.7-用链表结构写的学生成绩管理系统部分代码。