I was reserarching about Convex hull and Graham Scan to implement it and It drew my attention that everyone has used stacks. So I wanted to ask why are the stacks used in the algoithm precisely, what's the benefit of using stacks?
Why stack in convex hull
408 Views Asked by Ege At
2
There are 2 best solutions below
0
Nubok
On
The stack here can be considered as an abstract data structure that supports push, pop and empty operations. If you read the description of the Graham Scan algorithm you'll see that these are exactly the operations which the algorithm uses, so I really can't see what could be an alternative to a stack - it would probably be a different algorithm then.
What data structure is used to back/implement these operations in the stack (i. e. the class that implements stack interface in OO terms) can be decided rather freely. Often an array is used, but for some applications also linked lists might make sense.
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in STACK
- What is causing my towers of hanoi logic to infinitely loop?
- Asking code suggestions about data structure and algorithm
- Why is 'EDITBIN /STACK:2097152 w3wp.exe' cmd is giving me an LNK1342 error?
- issues with circular queues
- Missing PAGE_GUARD flag on the memory of stack for one windows application
- Purpose of stack register(s) in holding 0x7c00
- Split Dataframe and stack horizontally
- segmentation fault (core dumped) in C programming
- How to find Find max right using stack?
- Does an Stackoverflow occur in the JVM if the Activation Record is too small but there is still space left in the general stack?
- How to create 100 maps with bootstrapping using stacked ensemble fit with tidymodels
- How does the class Exchanger in Java actually work?
- How can I improve the iterative approach to be faster than recursive implementation, as usual?
- Need to make Stack cards on nav click as well ass page scroll with help of jquery
- Puncover: Stack column is empty after analysis
Related Questions in CONVEX-HULL
- convex hull method yielding multiple polygons
- How much exact are the operations in CGAL function "halfspace intersection with constructions"
- Drawing the outermost contour of a set of data points without losing resolution
- Implementing Jarvis Binary Search in Chan's algorithm
- How to add convex hulls to beta diversity graphs using phyloseq
- Visualizing 3D Convex Hulls for Grouped Data in R with Plotly
- Finding rectangle vertices from a parametrized plane
- How to chose colors of several convex hulls in a 3D environment and to display them in the legend?
- Vectorize a Convex Hull and Interpolation loop on a specific axis of an ndarray
- Performance improvements for rotating caliper to find the minimum bounding box in 2D
- Is the Convex hull of a simple polygon, and the convex hull of the vertices on a Euclidian plane (that make up the simple polygon), the same set?
- Algorithm for uniting a list of non-overlapping rectangles
- How can i turn a set of points and a seperating line into a linear program solvable in python? (Marriage before conquest algorithm)
- Why doesn't opencv's convexHull work on a subset of my contour, while it does work on the whole thing?
- How to find center point of 3d convexl hull, 3d polygon or polyhedron (all by Delaunay triangulation) in R
Related Questions in GRAHAMS-SCAN
- Graham scan when the points are already sorted by one of the coordinates
- text file with x y coordinates to empty Point2D[] array in Java
- Can you pattern match integers to ranges in OCaml?
- Convex Hull Not Returning Right Path ( Graham Scan in C++)
- How to generate worst case data for Graham Scan
- Struct comparator accessing another field in c++
- Haskell length and filter to determine convexity or concavity of a line
- Sorting by Polar Angle
- Jarvis algorithm (gift-wrapping) or graham-scan - C#
- Graham Scan Convex Hull appending too many vertices
- Checking for a nonleft turn in Graham's scan
- Convex Hull Algorithm - Graham scan fastest compare function?
- Draw a convex hull on a google map
- Calculate contour by using Gaham Scan
- Is there a way to further optimize Graham Scan algorithm to find the convex hull?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In graham scan while constructing the hull there is a need of backtracking if the points do not form a left turn with the next considered points so previous points need to be reconsidered as valid points of hull hence we use stack to get them in order of last visited first for re-validation. Though is its not mandatory to use stack you can use a simple array as well to do the same.