Sau đó, gõ nội dung:
#include <stdio.h>
#include <malloc.h>
typedef int ElementType;
typedef struct Node{
ElementType Element;
Node* Next;
};
typedef Node* Position;
typedef Position List;
void MakeNullList(List &L){
L=(Node*)malloc(sizeof(Node));
L->Next=NULL;
}
int EmptyList(List L){
return L->Next==NULL;
}
void InsertList(ElementType X, Position P, List L){
Position T = (Node*)malloc(sizeof(Node));
T->Element = X;
T->Next = P->Next;
P->Next = T;
}
void DeleteList(Position P,List &L){
if (!EmptyList(L)){
Position T = P->Next;
P->Next = T->Next;
free(T);
}
}
void PrintList(List L){
while(L->Next!=NULL){
printf("%d ",L->Next->Element);
L=L->Next;
}
}
Tiếp theo, tạo một file mới tên là nganxep.cpp, lưu file này cùng thư mục với file thuvien.cpp và gõ nội dung như sau:#include "thuvien.cpp"
typedef List Stack;
void MakeNullStack(Stack &S){
MakeNullList(S);
}
void Push(ElementType X, Stack &S){
InsertList(X,S,S);
}
void Pop(Stack &S){
DeleteList(S,S);
}
ElementType Top(Stack S){
return S->Next->Element;
}
int EmptyStack(Stack S){
return EmptyList(S);
}
int main(){
Stack S;
MakeNullStack(S);
printf("Moi ban nhap so thap phan = ");
int n;
scanf("%d",&n);
printf("So %d o he nhi phan la: ",n);
while(n>0){
Push(n%2,S);
n = n/2;
}
while(!EmptyStack(S)){
printf("%d",Top(S));
Pop(S);
}
printf("\n\nMoi nhap so n = ");
scanf("%d",&n);
for(int i=1;i<=n;i++){
int t = i;
printf("%d = ",t);
while(t>0){
Push(t%2,S);
t = t/2;
}
while(!EmptyStack(S)){
printf("%d",Top(S));
Pop(S);
}
printf("\n");
}
return 0;
}
Video: trên lớp mình đã giải thích ý nghĩa của các lệnh rồi nên trong video mình không giải thích cụ thể lại, các bạn xem video này để biết được đoạn code nào nên đánh trước, đánh sau, chứ không nên đánh code theo kiểu nhìn bài mẫu rồi code từ A->Z vào.
Mã nguồn: dành cho các bạn đánh nhưng không chạy. TẢI VỀ
0 nhận xét:
Đăng nhận xét