Linked List
2019-03-29 本文已影响0人
綿綿_
Create a linked list
class DATA2
{
String key;
String name;
int age;
}
class CLType
{
DATA2 nodeData = new DATA2();
CLType nextnode;
}
add an element at the end of list
CLType CLAddEnd (CLType head, DATA2 nodeData)
{
CLType node, htemp;
if ((node =new CLType())==null)
{
System.out.print("memory error");
return null;
}else
{
node.nodeData=nodeData; //save data
node.nextnode=null; //list tail
if(head == null)
{
head=node;
return head;
}
htemp=head;
while(htemp!=null)
{
htemp=htemp.nextnode;
}
htemp.nextnode=node;
return head;
}
}
Add an element at the first of list
CLType CLAddFirst(CLType head,DATA2 nodeData)
{
CLType node;
if((node = new CLType())==null)
{
System.out.print("memory error");
return null;
}else
{
node.nodeData=nodeData;
node.nextnode=head;
head=node;
return head;
}
}
Search for node with keyword
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;
}
Insert an element
CLType CLInsertNode(CLType head,String findkey,DATA2 nodeData)
{
CLType node,nodetemp;
if ((node = new CLType())==null)
{
System.out.print("memory error");
return null;
}
node.nodeData=nodeData;
nodetemp=CLFindNode(head,findkey);
if(nodetemp!=null)
{
node.nextnode=nodetemp.nextnode;
nodetemp.nextnode=node;
}
else
{
System.out.println("position not found");
}
return head;
}
Delete an element
int CLDeleteNode(CLType head,String key)
{
CLType node,htemp;
htemp=head;
node=head;
while(htemp!=null)
{
if (htemp.nodeData.key.compareTo(key)==0)
{
node.nextnode=htemp.nextnode;
htemp=null; //release memory
return 1 ;
}
else
{
node = htemp;
htemp=htemp.nextnode;
}
}
return 0;
}
Calculate the length of linked list
int CLLength(CLType head)
{
CLType htemp;
int len=0;
htemp=head;
while(htemp!=null)
{
len++;
htemp=htemp.nextnode;
}
return len;
}