learning javascript data structures and algorithms
learning javascript data structures and algorithms
Want to know learning javascript data structures and algorithms? we have a huge selection of learning javascript data structures and algorithms information on alibabacloud.com
JavaScript data structures and algorithms-inserting nodes, generating two-fork treesIn a binary tree, a relatively small value is saved on the left node, and a larger value is saved in the right node/** Binary tree, the relatively small value is saved on the left node, the larger value is saved in the right node * * **
Data structures and algorithms in JavaScript (4): string (BF ),
A string is a finite sequence composed of zero or multiple characters. It is also called a string.
The logical structure of a string is similar to that of a linear table. The difference is that a string is a character set. Therefore, the operation is quite
;//I fall back to the next last match firstj =0;//J fallback to the first of the substring } if(J = =searchstr.length) {returnIJ; } }}I is the subscript positioning of the main string, and J is the subscript location of the substring.When the main string string is equal, it enters the loop mode of the substring, and when the number of cycles J satisfies the substring length, the validation is exactly the same.When the main string string is not equal, it is necessary to move the
Data structures and algorithms in JavaScript (2): queue
This article mainly introduces the data structure and algorithm in JavaScript (2): queue is a linear table that allows only one end to be inserted and the other to be deleted
Objective:Stacks are similar to a list of data structures, but the stack is characterized by ' descendants first out '. Stacks are an efficient data structure, because data can only be added or deleted at the top of the stack, so this is fast and easy to implement.1. Introduction of the Stack:A stack is a special list
structure of linear tables, where the time complexity is O (1), regardless of the location of the data being stored or read. When inserting or deleting, the time complexity is O (n), indicating that it is more suitable for the number of elements stable, not often inserting and deleting elements.Advantages:① no need to add additional storage space to represent the logical relationship between elements in a table② can quickly access elements from anywh
| | j>1)//If to the end, return prompt{return ERROR;}S= (linklist) malloc (sizeof (Node));S->data =e;//Value AssignmentThe following two sentences can not be written anti-ohS->next = p->next;P->next = s;return OK;}Single-linked list delete operationDelete the A2 in the single-linked list a1,a2,a3650) this.width=650; "Width=" 518 "height=" 242 "title=" 11.jpg "style=" width:342px;height:143px; "src="/HTTP/ S3.51cto.com/wyfs02/m00/57/13/wkiol1sq75iic-u
This article mainly introduces the binary tree of JavaScript Data Structures and Algorithms. This article describes the concept of binary tree, the characteristics of binary tree, the definition of binary tree nodes, and the maximum and minimum values for searching, for more information, see
Binary Tree concept
A Bina
elementsGetelem (l,i,*e)--Returns the value of the I position element in the linear table L to ELocataelem (L,e)--Finds an element in the linear table L that is equal to the given value E, if the lookup succeeds, the return element in the table indicates success; otherwise, a return of 0 indicates a failure.Listinsert (*l,i,e)--Inserting a new element in the linear table L at the first position EInstance code:650) this.width=650; "title=" 11.jpg "src=" http://s3.51cto.com/wyfs02/M01/56/CB/wKioL
;next = NULL;return OK;}Advantages and disadvantages of single linked list and sequential table storage structure
Storage mode
Time performance
Space performance
Sequential storage
Successive storage units are sequentially storedData Elements for linear tables
Insertion: O (1)Insert and delete: Average moveThe length of the table is half the element, the timeis O (n)
Easy Overflow
Single linked list
Use a set of ar
at a time until an empty slot is found and the key is stored in that position. For example, the hash value of the conflict is H, followed by the order of H+1, h+2, h+3 ...To prevent aggregation (clustering), the skip slots method can be used.(ii) quadratic probing (square probe): that is, the conflicting hash value is H, then the next lookup is h+1, followed by h+4,h+9,h+16 ...(2) Chaining (linked list method): All elements of the same hash value are saved in a linked list. However, the more el
Stack: LIFO. Stack top at the end, bottom of the stack in the front. The newly added element and the element to be deleted are saved at the end of the stack.Create a stack:functionStack () {varitems = [];/*Save the elements in the stack with an array*/ This. Push =function(e) {Items.push (e); } This. Pop =function() { returnItems.pop (); } This. Peek =function() { returnItems[length-1]; } This. IsEmpty =function() { returnItems.length = = 0; } This. Size
numbering unit You can use the stack to do 10-in-2~9 binary operationsHere's how: a decimal number A, binary B1> will a%b, press into the stack2> Replace A with A/b3> if a is greater than 0, continue to hit 1> repeatedlyIf it is less than 0, jump out4> the elements of the stack pop up once, forming a new character (the character is the result of conversion completion)As an example: 10 to 2 binary:10%2 = 0--into the stack--05%2 =--1 in the stack, 02%2 = 0--into the stack--0, 1, 01%2 =--1 in s
= [] showing the same gender; Let len = this.list.length; while (len--) {if (This.list[len].gender = = = Gender) {Ret.push (this.list[len].name); }} return ret;} Example let people = new person ();p eople.save (' Mazey ', ' Male ');p eople.save (' John ', ' Male ');p eople.save (' Zero ', ' Male '); People.save (' July ', ' Male ');p eople.save (' Bob ', ' Male ');p eople.save (' Ada ', ' female ');p eople.save (' Cherrie ', ' female ');p eople.save (' Luna ', ' female ');p eople.save
the queue, and therefore also called a two-way queue. Write a test program to test the class.Bidirectional Queue class function Deque () {this.datastore = []; This.enqueuefront = Enqueuefront; This.enqueueback = Enqueueback; This.dequeuefront = Dequeuefront; This.dequeueback = Dequeueback; This.front = Front; This.back = back; this.tostring = toString; This.empty = Empty;} Queue-Team first function Enqueuefront (element) {This.dataStore.unshift (element);} Out team-team fir
value.Similarly, when an element of the RightMark position is greater than or equal to the base value, RightMark moves to the left one position to continue scanning, and the scan stops when the element of the RightMark position is less than the base value.After stopping the scan, we compare the size of the Leftmark and RightMark, if the Rightmark After we have put the datum values in the correct position, we see that the elements on the left side of the base value are smaller than the datum va
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
[email protected]
and provide relevant evidence. A staff member will contact you within 5 working days.