Archive

Archive for the ‘C’ Category

Cài đặt Stack trong C

Stack là một tập hợp các phần tử trong đó việc thêm vào và lấy ra đều được thực hiện ở một đầu. Nó là loại cấu trúc dữ liệu LIFO ( Last In First Out – Vào sau ra trước).

Các phần tử có thể được thêm vào Stack bất kỳ lúc nào nhưng chỉ có phần tử được thêm vào sau cùng mới được phép lấy ra khỏi Stack.

Các thao tác chính với Stack gồm :

+ Push : Thêm phần tử vào

+ Pop : Lấy phần tử ra

+ IsEmpty: Kiểm tra Stack có rỗng không

+ IsFull : Kiểm tra Stack có đầy chưa

+ Top : Trả về giá trị của phần tử nằm ở đầu Stack mà không hủy nó khỏi Stack. Nếu Stack rỗng thì báo lỗi.

Code cài đặt Stack trong C dùng mảng :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 20
struct Stack
{
 int data[MAX];
 int size;
};
typedef struct Stack Stack;
void Init(Stack *S)
{
 S->size=0;
}
void Push(Stack *S,int d)
{
 S->data[S->size++]=d;
}
int Pop(Stack *S)
{
 return S->data[--S->size];
}
int Size(Stack *S)
{
 return S->size;
}
int IsEmpty(Stack *S)
{
 if (S->size==0)
 {
 return 1;
 }
 else
 {
 return 0;
 }
}
int IsFull(Stack *S)
{
 if (S->size==MAX)
 {
 return 1;
 }
 else
 {
 return 0;
 }
}
int Top(Stack *S)
{
 return S->data[S->size-1];
}
void Display(Stack *S)
{
 int i;
 for (i=0;i<S->size;i++)
 {
 printf("%d\t",S->data[i]);
 }
 printf("\n");
}

Download file main.c full tại đây

Categories: C