Cấu trúc dữ liệu: Ngăn Xếp Stack - Kiểu cài 1



Ngăn Xếp Stack - Kiểu cài 1: cài tựa danh sách đặc
#include <stdio.h>
#include <conio.h>
#define MaxLength 50
typedef int ElementType;

typedef struct
Stack{
ElementType Elements[MaxLength];
int
TopIdx;
//Đỉnh ngăn xếp = chỉ số phần tử cuối trong mảng
};

void
MakeNullStack(Stack &S){
S.TopIdx = -1;
}


int
EmptyStack(Stack S){
return
(S.TopIdx==-1);
}

void
Push (ElementType X, Stack &S){
if
(S.TopIdx == MaxLength-1)
printf("ngan xep day!!!\n");
else
{
S.TopIdx = S.TopIdx+1;
S.Elements[S.TopIdx] = X;
//S.Elements[++S.TopIdx]X;
}
}

void
Pop(Stack &S){
if
(EmptyStack(S))
printf("Ngan xep rong! Khong co gi de Pop!!\n");
else

S.TopIdx=S.TopIdx-1;
}


ElementType Peek(Stack S){
return
S.Elements[S.TopIdx];
}

void
NhiPhan(int n){
Stack S;
MakeNullStack(S);
while
(n!=0){
int
sodu = n % 2;
Push(sodu,S);
n = n / 2;
}


while
(!EmptyStack(S)){
printf("%d",Peek(S));
Pop(S);
}

printf("\n");
}

int
main(){
int
n;
printf("Nhap so nguyen n = ");
scanf("%d",&n);
for
(int i=2;i<=n;i++){
printf("%d = ",i);
NhiPhan(i);
}

return
0;
}


Video:

 

Bài liên quan

Bài liên quan