I found data structures as one of the most interesting subjects in the academic i learned. Before some day i was learning object oriented features of javascript. I tried my hand on implementing a Link List algorithm in javascript and here is what i get.
Let's start building a Link List using JavaScript:
- Declaring The basic data structures
function LinkListNode()
{
this.Data = 0;
this.Next = null;
}
function List()
{
var First = new LinkListNode();
} - Adding an Insert method
List.prototype.addNode=function(_node)
{
if(this.First == null)
{
this.First = _node;
}
else
{
var temp = this.First;
while(temp.Next != null)
temp=temp.Next;
temp.Next = _node;
}
} - Adding Search Method
List.prototype.search=function(intData)
{
var temp = this.First;
var node = null;
while(temp !=null)
{
if(temp.Data == intData)
{
node= temp;
break;
}
else
temp = temp.Next;
}
return node;
} - Adding Display Method
List.prototype.show=function()
{
var temp = this.First;
while(temp != null)
{
alert(temp.Data);
temp=temp.Next;
}
} - Adding Edit Method
List.prototype.edit=function(oldValue,newValue)
{
var node = this.search(oldValue);
if(node !=null)
node.Data =newValue;
} - Adding Delete Method
List.prototype.remove=function(value)
{
debugger;
//if first
if(this.First.Data == value)
{
this.First = this.First.Next
return value;
}
//else
var temp = this.First.Next;
var prev = this.First.Next;
while(temp!=null)
{
if(temp.Data == value)
{
if(prev.Data == temp.Data)
this.First.Next = temp.Next;
else
prev.Next=temp.Next;
return;
}
else
{
prev = temp;
temp = temp.Next;
}
}
} - Let's test the stuff
//create data structure object
var _list= new List();
//add nodes
var node = new LinkListNode();
node.Data = 11;
_list.addNode(node);
node = new LinkListNode();
node.Data = 33;
_list.addNode(node);
node = new LinkListNode();
node.Data = 44;
_list.addNode(node);
node = new LinkListNode();
node.Data = 22;
_list.addNode(node);
node = new LinkListNode();
node.Data = 55;
_list.addNode(node);
_list.show();
//test edit
_list.edit(11,99);
_list.show();
//test remove
_list.remove(22);
_list.show();
No comments:
Post a Comment
Please add your valuable comments about this post if it helped you. Thanks