IT story

스택과 큐의 기본 차이점은 무엇입니까?

hot-time 2020. 7. 12. 09:32
반응형

스택과 큐의 기본 차이점은 무엇입니까?


스택과 큐의 기본 차이점은 무엇입니까 ??

차이점을 찾을 수 없습니다 도와주세요.

어떻게 당신은 스택과 큐를 구별합니까?

다양한 링크에서 답변을 검색하여이 답변을 찾았습니다 ..

고급 프로그래밍에서

스택은 기존 요소의 "최상위"에 새 요소를 배치하여 연장하고 기존 요소의 상단에서 요소를 제거하여 단축되는 요소 목록 또는 요소 시퀀스로 정의됩니다. "푸시"및 "팝"의 수학 연산을 사용하는 ADT [Abstract Data Type]입니다.

큐는 기존 요소의 뒤쪽에 새 요소를 배치하여 추가되고 큐 앞의 요소를 제거하여 단축되는 요소 시퀀스입니다. ADT [Abstract Data Type]입니다. Java, C ++, Python 등의 프로그래밍에는 이러한 용어에 대한 이해가 더 많습니다.

더 자세한 답변을받을 수 있습니까? 도와주세요.


스택 은 LIFO (last in first out) 데이터 구조입니다. 위키 백과에 연결된 링크에는 자세한 설명과 예제가 포함되어 있습니다.

는 선입 선출 (FIFO) 데이터 구조입니다. 위키 백과에 연결된 링크에는 자세한 설명과 예제가 포함되어 있습니다.


용지 더미를 상상해보십시오 . 스택에 넣은 마지막 조각이 맨 위에 있으므로 가장 먼저 나옵니다. 이것은 LIFO 입니다. 종이를 추가하는 것을 "푸시"라고하고 종이를 제거하는 것을 "퍼핑"이라고합니다.

가게에서 대기열을 상상해보십시오 . 첫 번째 줄은 첫 줄을 벗어난 사람입니다. 이다 FIFO . 전화를받는 사람은 "대기열"상태가되고, 전화를받는 사람은 "대기열 상태"가됩니다.


시각적 모델

팬케이크 스택 (LIFO)

하나를 추가하거나 제거하는 유일한 방법은 맨 위입니다.

pancake stack

라인 (FIFO)

도착하면 대기열의 끝에 도착하고 출발하면 대기열의 정면에서 출발합니다.

dmv line

Fun fact: the British refer to lines of people as a Queue


You can think of both as an ordered list of things (ordered by the time at which they were added to the list). The main difference between the two is how new elements enter the list and old elements leave the list.

For a stack, if I have a list a, b, c, and I add d, it gets tacked on the end, so I end up with a,b,c,d. If I want to pop an element of the list, I remove the last element I added, which is d. After a pop, my list is now a,b,c again

For a queue, I add new elements in the same way. a,b,c becomes a,b,c,d after adding d. But, now when I pop, I have to take an element from the front of the list, so it becomes b,c,d.

It's very simple!


Queue

Queue is a ordered collection of items.

Items are deleted at one end called ‘front’ end of the queue.

Items are inserted at other end called ‘rear’ of the queue.

The first item inserted is the first to be removed (FIFO).

Stack

Stack is a collection of items.

It allows access to only one data item: the last item inserted.

Items are inserted & deleted at one end called ‘Top of the stack’.

It is a dynamic & constantly changing object.

All the data items are put on top of the stack and taken off the top

This structure of accessing is known as Last in First out structure (LIFO)


STACK:

  1. Stack is defined as a list of element in which we can insert or delete elements only at the top of the stack.
  2. The behaviour of a stack is like a Last-In First-Out(LIFO) system.
  3. Stack is used to pass parameters between function. On a call to a function, the parameters and local variables are stored on a stack.
  4. High-level programming languages such as Pascal, c, etc. that provide support for recursion use the stack for bookkeeping. Remember in each recursive call, there is a need to save the current value of parameters, local variables, and the return address (the address to which the control has to return after the call).

QUEUE:

  1. Queue is a collection of the same type of element. It is a linear list in which insertions can take place at one end of the list,called rear of the list, and deletions can take place only at other end, called the front of the list
  2. The behaviour of a queue is like a First-In-First-Out (FIFO) system.

A stack is a collection of elements, which can be stored and retrieved one at a time. Elements are retrieved in reverse order of their time of storage, i.e. the latest element stored is the next element to be retrieved. A stack is sometimes referred to as a Last-In-First-Out (LIFO) or First-In-Last-Out (FILO) structure. Elements previously stored cannot be retrieved until the latest element (usually referred to as the 'top' element) has been retrieved.

A queue is a collection of elements, which can be stored and retrieved one at a time. Elements are retrieved in order of their time of storage, i.e. the first element stored is the next element to be retrieved. A queue is sometimes referred to as a First-In-First-Out (FIFO) or Last-In-Last-Out (LILO) structure. Elements subsequently stored cannot be retrieved until the first element (usually referred to as the 'front' element) has been retrieved.


STACK: Stack is defined as a list of element in which we can insert or delete elements only at the top of the stack

Stack is used to pass parameters between function. On a call to a function, the parameters and local variables are stored on a stack.

A stack is a collection of elements, which can be stored and retrieved one at a time. Elements are retrieved in reverse order of their time of storage, i.e. the latest element stored is the next element to be retrieved. A stack is sometimes referred to as a Last-In-First-Out (LIFO) or First-In-Last-Out (FILO) structure. Elements previously stored cannot be retrieved until the latest element (usually referred to as the 'top' element) has been retrieved.

QUEUE:

Queue is a collection of the same type of element. It is a linear list in which insertions can take place at one end of the list,called rear of the list, and deletions can take place only at other end, called the front of the list

A queue is a collection of elements, which can be stored and retrieved one at a time. Elements are retrieved in order of their time of storage, i.e. the first element stored is the next element to be retrieved. A queue is sometimes referred to as a First-In-First-Out (FIFO) or Last-In-Last-Out (LILO) structure. Elements subsequently stored cannot be retrieved until the first element (usually referred to as the 'front' element) has been retrieved.


To try and over-simplify the description of a stack and a queue, They are both dynamic chains of information elements that can be accessed from one end of the chain and the only real difference between them is the fact that:

when working with a stack

  • you insert elements at one end of the chain and
  • you retrieve and/or remove elements from the same end of the chain

while with a queue

  • you insert elements at one end of the chain and
  • you retrieve/remove them from the other end

NOTE: I am using the abstract wording of retrieve/remove in this context because there are instances when you just retrieve the element from the chain or in a sense just read it or access its value, but there also instances when you remove the element from the chain and finally there are instances when you do both actions with the same call.

Also the word element is purposely used in order to abstract the imaginary chain as much as possible and decouple it from specific programming language terms. This abstract information entity called element could be anything, from a pointer, a value, a string or characters, an object,... depending on the language.

In most cases, though it is actually either a value or a memory location (i.e. a pointer). And the rest are just hiding this fact behind the language jargon<

A queue can be helpful when the order of the elements is important and needs to be exactly the same as when the elements first came into your program. For instance when you process an audio stream or when you buffer network data. Or when you do any type of store and forward processing. In all of these cases you need the sequence of the elements to be output in the same order as they came into your program, otherwise the information may stop making sense. So, you could break your program in a part that reads data from some input, does some processing and writes them in a queue and a part that retrieves data from the queue processes them and stores them in another queue for further processing or transmitting the data.

A stack can be helpful when you need to temporarily store an element that is going to be used in the immediate step(s) of your program. For instance, programming languages usually use a stack structure to pass variables to functions. What they actually do is store (or push) the function arguments in the stack and then jump to the function where they remove and retrieve (or pop) the same number of elements from the stack. That way the size of the stack is dependent of the number of nested calls of functions. Additionally, after a function has been called and finished what it was doing, it leaves the stack in the exact same condition as before it has being called! That way any function can operate with the stack ignoring how other functions operate with it.

Lastly, you should know that there are other terms used out-there for the same of similar concepts. For instance a stack could be called a heap. There are also hybrid versions of these concepts, for instance a double-ended queue can behave at the same time as a stack and as a queue, because it can be accessed by both ends simultaneously. Additionally, the fact that a data structure is provided to you as a stack or as a queue it does not necessarily mean that it is implemented as such, there are instances in which a data structure can be implemented as anything and be provided as a specific data structure simply because it can be made to behave like such. In other words, if you provide a push and pop method to any data structure, they magically become stacks!


STACK is a LIFO (last in, first out) list. means suppose 3 elements are inserted in stack i.e 10,20,30. 10 is inserted first & 30 is inserted last so 30 is first deleted from stack & 10 is last deleted from stack.this is an LIFO list(Last In First Out).

QUEUE is FIFO list(First In First Out).means one element is inserted first which is to be deleted first.e.g queue of peoples.


Stacks a considered a vertical collection. First understand that a collection is an OBJECT that gathers and organizes other smaller OBJECTS. These smaller OBJECTS are commonly referred to as Elements. These elements are "Pushed" on the stack in an A B C order where A is first and C is last. vertically it would look like this: 3rd element added) C 2nd element added) B 1st element added) A

Notice that the "A" which was first added to the stack is on the bottom. If you want to remove the "A" from the stack you first have to remove "C", then "B", and then finally your target element "A". The stack requires a LIFO approach while dealing with the complexities of a stack.(Last In First Out) When removing an element from a stack, the correct syntax is pop. we don't remove an element off a stack we "pop" it off.

Recall that "A" was the first element pushed on to the stack and "C" was the last item Pushed on the stack. Should you decide that you would like to see what is on bottom the stack, being the 3 elements are on the stack ordered A being the first B being the second and C being the third element, the top would have to be popped off then the second element added in order to view the bottom of the stack.

참고URL : https://stackoverflow.com/questions/10974922/what-is-the-basic-difference-between-stack-and-queue

반응형