c 언어 창고 의 실현 및 조작

2740 단어
이 글 은 스 택 의 구조 체 실현, 단일 데이터 형식 실현, 그리고 비우 기, 비우 기, 스 택 에 들 어가 기, 스 택 에서 나 오기, 스 택 꼭대기 요소 의 실현 을 포함한다.
창 고 는 가장 간단 한 데이터 구조 로 서 실현 하기 도 매우 쉽다. 지금 은 한 무더기 의 접시 가 있 는데 매번 에 접 시 를 가 져 가 거나 놓 을 수 있 고 맨 위 에 만 조작 할 수 있다.
그러면 우리 가 만약 에 색인 TOP 이 항상 맨 위 에 있 는 접 시 를 가리 키 면 스 택 이 실현 되 지 않 습 니까?
첫 번 째 단 계 는 단일 데이터 형식의 코드 입 니 다.
#include 
#include 
#include 
#define maxn 110//     
typedef int elem;    //        
typedef struct{
    int top;    ///     
    elem index[maxn];
}Stack;
Stack stack;   ///               ,                        
void stack_pop(){   ///    ,       
    stack.top--;
}
void stack_push(elem buf){  ///    
    stack.index[++stack.top] = buf;
}
int stack_empty(){///  ,         1,    0
    return stack.top == -1;
}

void stack_clear(){ ///   
    stack.top = -1;
}

int stack_size(){   ///      
    return stack.top+1;
}
elem stack_top(){   ///      
    return stack.index[stack.top];
}

int main()
{
    stack_clear();///    
    elem buf;
    buf = 10;
    stack_push(buf);
    printf("%d
",stack_top()); printf("%d
",stack_empty()); printf("%d
",stack_size()); stack_pop(); printf("%d
",stack_size()); return 0; }

, , , elem

#include 
#include 
#include 
#define maxn 11

typedef struct {
    int n;
    char str[maxn];
}elem;          ///          

typedef struct{
    int top;    ///     
    elem index[maxn];
}Stack;
Stack stack;   ///               ,                   
void stack_pop(){   ///    ,       
    stack.top--;
}
void stack_push(elem buf){  ///    
    stack.index[++stack.top].n = buf.n;
    strcpy(stack.index[stack.top].str,buf.str);
}
int stack_empty(){///  ,         1,    0
    return stack.top == -1;
}

void stack_clear(){ ///   
    stack.top = -1;
}

int stack_size(){   ///      
    return stack.top+1;
}
elem stack_top(){   ///      
    return stack.index[stack.top];
}

int main()
{
    stack_clear();
    elem buf;
    buf.n = 1;
    strcpy(buf.str,"abc");
    stack_push(buf);
    printf("%d  %s
",stack_top().n,stack_top().str); printf("%d
",stack_empty()); printf("%d
",stack_size()); stack_pop(); printf("%d
",stack_size()); return 0; }

:https://www.cnblogs.com/bestsort/p/10588892.html

좋은 웹페이지 즐겨찾기