Kênh Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
kiem tien, kiem tien online, kiem tien truc tuyen, kiem tien tren mang
Thứ Bảy, 1 tháng 12, 2012


/* Ví dụ về xử lý STACK (sử dụng mảng tĩnh)
- tạo stack ngẫu nhiên
- Lấy phần tử ra khỏi stack
*/

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

#define MAX 100

int stack[2*MAX];
int top1, top2;

// khởi tạo stack
void initstack()
{
  top1 = -1;
  top2 = 2*MAX;
}

// đưa phần tử vào stack
void push(int value, int _stack)
{
  if (_stack == 0)
  {
    if (top1<top2)
      stack[++top1] = value;
  }
  else
  {
    if (top1<top2)
      stack[--top2] = value;
  }
}

// kiểm tra stack rỗng
int isempty(int _stack)
{
  if (_stack == 0)
    return top1 == -1;
  else
    return top2 == 2*MAX;
}

// lấy phần tử ra khỏi stack
int pop(int _stack)
{
  if (_stack == 0)
    if (!isempty(_stack))
      return(stack[top1--]);
  if (!isempty(_stack))
    return stack[top2++];
  else
    return -1;
}

// hàm chính
void main()
{

  int i, value, _stack;

  initstack();
  randomize();

  for (i = 0; i<20; i++)
  {
    _stack = random(2);
    value  = random(10); // tạo giá trị ngẫu nhiên
    printf("\nPUSH %d vao stack %d", value, _stack);
    push(value, _stack);
  }

  printf("\nLay nhung gia tri tu stack 0 : ");

  while (!isempty(0))
    printf("%3d", pop(0));

  printf("\nLay nhung gia tri tu stack 1 : ");

  while (!isempty(1))
    printf("%3d", pop(1));

  getch();

}
//-------------------------------------------------------------------------------------------





0 nhận xét:

Đăng nhận xét

domain, domain name, premium domain name for sales

Popular Posts