데이터 구조는 구조화된 방식으로 구성된 데이터 모음입니다. 선형 데이터 구조와 비선형 데이터 구조의 두 가지 유형으로 분류됩니다.
선형 데이터 구조 − 여기에서 데이터는 선형 방식으로 구성됩니다.
예:배열, 구조, 스택, 대기열, 연결 목록.
비선형 데이터 구조 − 여기에서 데이터는 계층적으로 구성됩니다.
예:나무, 그래프, 세트, 테이블.
C 언어로 스택
데이터가 한쪽 끝에서만 삽입 및 제거되는 선형 데이터 구조입니다.
작업
- 푸시 – 스택에 요소 삽입
- 팝 – 스택에서 요소 삭제
삭제된 요소 =50Item =a [top]top --
- 팝() ,팝(),팝(),팝()
삭제된 요소 =40Deleted 요소=30Deleted 요소=20삭제된 요소 =10
- 팝( )
흐름 아래 스택
조건
-
Stack over flow - 전체 스택에 요소를 삽입하려고 합니다.
-
Stack under flow − 스택에서 비어 있는 요소를 삭제하려고 합니다.
푸시( ), 팝( ), 디스플레이( )에 대한 알고리즘
각각의 알고리즘은 다음과 같습니다 -
푸시( )
- 스택 오버플로를 확인합니다.
if (top ==n-1)printf("stack over flow");
- 그렇지 않으면 스택에 요소를 삽입하세요.
상위 ++a[상위] =항목
팝( )
- 스택 언더플로를 확인합니다.
if ( top ==-1)printf( "stack under flow");
- 그렇지 않으면 스택에서 요소를 삭제합니다.
항목 =a[상단]상단 --
디스플레이( )
- 스택 흐름을 확인합니다.
if (top ==-1)printf("스택이 비어 있습니다.");
- 그렇지 않으면 아래 언급된 알고리즘을 따르십시오 -
for (i=0; i예
다음은 배열을 사용하여 스택을 구현하는 C 프로그램입니다 -
#include#include int top =-1, n,a[100];main( ){ int ch; 무효 팝( ); 무효 표시( ); clrscr( ); printf("스택의 크기를 입력하세요"); scanf("%d", &n); printf("스택 구현\n"); printf("1. 푸시 \n"); printf("2. 팝업 \n"); printf("3. 종료 \n"); do{ printf( "선택한 항목을 입력하세요."); scanf("%d", &ch); 스위치(ch){ 경우 1 :푸시( ); 표시하다 ( ); 부서지다; 경우 2 :( )를 누르십시오. 표시하다 ( ); 부서지다; 경우 3 :종료 } }while (ch>=1 | | ch<=3); getch( );} 무효 푸시( ){ int 항목; if (top ==n-1) printf ( "stack over flow") else{ printf("삽입할 요소를 입력하세요.") scanf ("%d", &item); top ++; a[top] =item; }} void pop( ){ int item; if(top ==-1); printf( "stack under flow"); else{ 항목 =a[상단]; 맨 위 --; printf("삭제된 요소 =%d", 항목); }}표시 무효( ){ int i; if (top ==-1) printf( "스택이 비어 있습니다."); else{ printf("스택의 내용은"); for (i=0; i 출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
스택의 크기를 입력 =5 [사용자 지정]스택 구현1. Push 2. Pop 3. exit ur choice 입력 :1 [사용자가 제공]삽입할 요소 입력 :10스택의 내용 입력 :10선택 사항 입력 :1삽입할 요소 입력 :2스택 내용 입력 :10 20선택 사항 입력 :2Deleted element =20스택의 내용은 다음과 같습니다. 10선택 항목을 입력하십시오. 2삭제된 요소:10스택 내용이 비어 있습니다. 선택 항목을 입력하십시오. 2Stack underflow.선택 항목을 입력하십시오. 1삽입할 요소를 입력하십시오.