data structures and algorithms in java 4th edition
data structures and algorithms in java 4th edition
Learn about data structures and algorithms in java 4th edition, we have the largest and most updated data structures and algorithms in java 4th edition information on alibabacloud.com
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
Bubble sortThe basic idea of bubble sorting is to compare two adjacent elements each time and swap them out if they are in the wrong order.If there are n numbers to sort, just n?1 the number of digits, which meansN-1 operation. The "Every trip" requires a comparison of two adjacent numbers starting from the 1th position, and the smaller oneIn the back, when the comparison is complete, move back one to continue comparing the size of the two adjacent numbers below, repeat this step until the lastN
; tointk=-1; .intJ=0; - while(JPlen-1) ,{ the //p[k] Represents a prefix, p[j] represents a suffixTenif(k==-1|| P[J]==P[k]) One { A++k; -++J; -Next[J]=k; the} -Else -{ -k=Next[k]; +} -} +}The value of Next[j] (that is, K) indicates the next move position of the J pointer when p[j]! = T[i].When J is 0 o'clock, if this time does not match, J already on the leftmost, can not move again, this time should be I pointer back move. So in the code there will be next[0] =-1; this initialization.P[K]! = P[
① problem: If there is a tuple or sequence containing n multiple elements, now you want to break it down into n separate variables. 1 L = (4, 5)2 x, y = lView Code② Advanced article:data = ['sb' ' big hammer ', (2018, 6, 2 = dataa='sb'b=' big hammer ' C=51Date= (2018, 6, 2)③data = ['sb' ' big hammer ', (2018, 6, 2 == 2018= 6= 2View CodeSo then the question comes, this is to know the list of how much of the situation to achieve, if the unknown? that
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
1. Principle:2. Code implementationdefQuick_sort (alist, Start, end):"""Quick Sort""" #Recursive exit conditions ifStart >=End:return #sets the starting element as the datum element to find the positionMID =Alist[start]#Low is the left-to-right cursor for the left of the sequenceLow =Start#High is the right-to-left cursor to the right of the sequenceHigh =End whileLow High :#If low is not coincident with high, the element with high points is not smaller than the datum element, then high
1. Basic properties of stacks and queues
Stack is advanced after out; (like a bullet clip, a last-shot first)
Queues are FIFO; (like waiting in line to buy ice cream, in order to take turns)
Stack and queue in the implementation of the structure can have an array and a list of two forms;
(1) The array structure is easy to implement;(2) The structure of the linked list is more complicated, because it involves a lot of pointer operation;1.1 Basic operation of stack structure(1) Pop op
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
"Select Sort"The selection sort is based on a bubbling sort (Bubble sort) that has been improved: each visit process (pass) needs to be exchanged at most.Each visit process, to find the maximum value, when the end of the visit, the maximum value is exchanged to the correct position;Then continue to repeat the process in the remaining sublist until the n-1 visit is completed (n is the length of the list);At this point, the remaining elements in the list are automatically aligned to the correct po
= [] 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
This article illustrates the fast sequencing of data structures and algorithms implemented by Python. Share to everyone for your reference. The specific analysis is as follows:
I. Overview
Quick Sort is a sort of divide-and-conquer algorithm. The algorithm first selects a partitioning element (partition element, sometimes called a pivot), and then rearranges th
node without any child nodes.The number of layers in the two-ary tree is L, and the node points are N, then N=2L-1;L=LOG2 (n+1).5. Complete binary TreeConcept: In addition to the last layer, each of the other layers of the number of nodes are full, the last layer if also full, is a full two fork tree, is also a complete binary tree. If the last layer is dissatisfied, the missing nodes are all concentrated on the right, and that is a tree full of two forks.As below, are completely binary tree!!!
judge the case as false. if the match is not modified after the child match ends, it indicates that the match is a full match.
The above two methods all use subloops. can we change them to a loop body?
In fact, we can see that the primary string will only increase by 1 each time, and the child string will be matched from the beginning each time. so we can change it to a while to control the subscript pointer.
Optimization algorithm (2)
Function BF_Optimize_2 (sourceStr, searchStr) {var I = 0,
. Ah ah ah ah oh ah ah ah oh ah ah ahThis is not written until 00:00 November 23, 2015.However, in order to maintain the style of unification, or to add a few think well-written blogReport:http://arsenal591.blog.163.com/blog/static/253901269201510169448656Http://www.cnblogs.com/ocNflag/p/4967695.htmlHttp://blog.sina.com.cn/s/blog_1495db3970102w4wl.htmlHttp://www.cnblogs.com/fighter-MaZijun/p/4979318.htmlHttp://www.cnblogs.com/lqf-96/p/lowest-common-ancestor-of-a-binary-tree.htmlRe-attached://The
Linked List of data structures and algorithms
Classification of linked lists:
(1) single-chain table
Header insertion: you only need to maintain one header node, which is often used to simulate the stack;
Tail insertion: You need to maintain the head and end nodes, which are often used to simulate queues.
(2) Two-way linked list
Bidirectional traversal can be use
Array of data structures and algorithms
The basic concept of array: array is the simplest and most commonly used data structure, but there are also some considerations:
(1) array allocation method and storage location;
(2) initialization;
(3) Advanced definition of arrays in different languages;
(4) multi-dimensional a
The algorithm and data structure, from the very beginning, the realization of dynamic array is first seen.Array.h#include Main.cpp#include "Array.h" int main () {Array arr1 (2); Arr1.printarray (); arr1. InsertAt (1, 1); Arr1.printarray (); arr1. Deleteat (1); Array arr2 (ARR1); Arr2.printarray (); arr1. SetAt (1, 1); Array ARR3 = Arr1;arr3.printarray (); Arr3. Pushback (2); cout Output resultsCome on, that's it.Fundamentals of
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
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:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.