分析:
上述节点具备如下特征:
1、 每个节点由两部分组成(存储信息的字段,存储指向下一个节点的指针) 2、 节点之间有着严格的先后顺序。
3、 单链表节点是一种非线性的结构,在内存中不连续分配空间。
设计:
设计节点
设计涉及到算法: 初始化单链表:
1、 提供一个init方法,用来加载链表数据 2、 实现链表的链接。
具体代码如下:
public class Linker { public NODE head; //define the initial function to init the single linker! public void init(char v_char[]) { NODE ptr NODE p = new NODE();
head &#61; p; for(int i &#61; 0; i < v_char.length;i&#43;&#43;)
{
ptr &#61; new NODE(); ptr.info &#61; v_char[i]; p.link &#61; ptr; ptr.link &#61; null; p &#61; ptr;
}
} //define search in linker public boolean searchinlinker(char ch) {
boolean flag &#61; false; NODE ptr; ptr &#61; head.link; while( ptr !&#61; null) {
if(ch &#61;&#61; ptr.info) {
flag &#61; true;
break; }
else {
ptr &#61; ptr.link; } return flag; } //define the insert fuction public void insertintolinker(char pos,char ch) {
NODE ptr;
NODE p;
ptr &#61; head.link;
while( ptr !&#61; null)
{
if(pos &#61;&#61; ptr.info) {
//实现数据插入 p &#61; new NODE(); p.info &#61; ch; p.link &#61; ptr.link; ptr.link &#61; p; break; } else {
ptr &#61; ptr.link; } } //defin the delete function
public void deletefromlinker(char ch)
{ NODE ptr; NODE p; ptr &#61; head.link; p &#61; head; while( ptr !&#61; null) {
if(ch &#61;&#61; ptr.info) {
//实现数据删除 p.link &#61; ptr.link;
System.gc(); break; } else
{ p &#61; ptr; ptr &#61; ptr.link; } } } //defin the print linker public void printlinker() { NODE ptr; ptr &#61; head.link; while (ptr !&#61; null) {
System.out.print(" " &#43; ptr.info &#43; "->"); ptr &#61; ptr.link; } System.out.println("null"); }
}