우리는 물리적 인 비유의 관점에서 스택을 생각하기 때문에, 우리는 일반적으로 수직으로 그립니다 (그래서 상단은 정말 상단에). 우리는 당신을 위해 전체 스택 모듈을 작성했습니다 (stack.h 및 stack.c). 또한, 여기에 샘플 메인 프로그램 stacktest.c와 메이크 파일입니다. 셋째, 요소를 스택에 푸시하기 위해 새 노드를 만들고 스택 포인터를 새 노드(예: 첫 번째 요소로 가리키는 값) 다음 세 가지 기본 작업이 스택에서 수행됩니다. 그리고 유용하게 만드는 것은 요소가 스택에서 나오는 순서입니다. 문자 더미를 보면서 어떤 순서를 볼 수 있습니다… 이 프로그램은 스택에 의해 생성 된 주문의 한 사용을 보여줍니다 … 이게 뭐예요? 마지막으로 스택에 대한 형식과 함수를 작성했기 때문에 스택을 사용하는 방법을 알고 있습니다. 예를 들어 스택이 필요한 경우 스택 변수선언: 이 섹션의 C 프로그램은 스택의 다른 구현을 보여 줍니다. 여기에는 MACROS를 사용하여 스택 작업을 설명하고 동적 메모리 할당을 사용하여 스택의 작업을 구현하는 프로그램이 포함되어 있습니다. 스택을 사용해야 하는 사람은 stack.h를 포함하고 코드를 stack.c와 연결해야 합니다(실제로 해당 코드를 해당 개체 파일, stack.o와 연결). 다른 필드가 필요합니까? 어레이의 최대 크기는 런타임에 결정됩니다… 스택이 가득 찼는지 알 수 있도록 해당 값을 유지해야 할 것입니다…

따라서 최종 형식은 다음과 같습니다: 이제 항목, 문자 = Pop(스택)을 제거하고 제공: 배열은 각 요소에 직접 적이고 일정한 시간에 액세스할 수 있는 임의 액세스 데이터 구조입니다. 임의 액세스의 전형적인 그림은 책입니다 – 책의 각 페이지는 다른 사람과 독립적으로 열 수 있습니다. 임의 액세스는 이진 검색과 같은 많은 알고리즘에 매우 중요합니다. 스택의 추상적 개념의 일부가 아니지만 C에서 스택을 작성할 때 설정 및 정리에 필요합니다. main.c 파일(C의 스택 프로그램)에서 배열을 사용하는 스택 데이터 구조를 테스트할 수 있습니다. 데이터 구조에 따라 데이터를 보유하기 위한 것이고 해당 데이터에 대한 특정 작업을 제공하는 것을 의미합니다. 우리는 별도의 게시물에 스택의 응용 프로그램의 구현을 다룰 것입니다. 이 배열은 충분합니까, 아니면 스택에 대한 자세한 정보를 저장해야 합니까? 둘째, 스택의 헤드 포인터를 NULL로 설정하여 스택을 초기화해야 합니다. 스택에서 수행할 수 있는 두 가지 작업은 스택에 요소를 삽입하는 푸시 작업입니다.

스택에 추가된 마지막 요소를 제거하는 팝 작업입니다. 그것은 첫 번째 아웃 (LIFO) 순서에서 마지막을 따릅니다. 스택을 다루는이 섹션의 C 프로그램. 이 섹션에서는 재귀와 재귀를 사용하지 않고 스택을 반대로 하고, 단일 배열을 사용하여 두 개의 스택을 구현하고 오버플로 및 언더플로우 조건을 확인하고 연결된 목록을 사용하여 스택을 구현하는 다양한 스택 구현을 다룹니다. 스택 오버플로는 프로그램이 호출 스택이 사용할 수 있는 것보다 더 많은 메모리 공간을 사용하려고 시도하는 바람직하지 않은 조건입니다. 스택이 비어 있지만 팝 작업이 시도되면 스택 언더플로우 조건이 생성됩니다. 이제 C 데이터 구조에는 스택을 추적하는 데 필요한 데이터 형식과 스택 작업을 구현하는 데 필요한 함수의 2가지 주요 부분이 있습니다. 지금, 스택에 밀어 스택 자체 뿐만 아니라 뭔가 밀어 필요. 그래서, 그것의 프로토 타입처럼 보일 것입니다 : 깊이 먼저 검색에서 우리는 우리가 막다른 길에 도착 할 때까지 경로를 내려 갑니다; 그런 다음 다른 경로를 얻기 위해 스택을 터뜨려 역추적하거나 백업합니다.