Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #define MAX_STACK_SIZE 7
- struct Stack {
- char books[MAX_STACK_SIZE][100];
- int top;
- };
- // Inisialisasi stack
- void initStack(struct Stack* stack) {
- stack->top = -1;
- }
- // Cek apakah stack kosong
- bool isEmpty(struct Stack* stack) {
- return (stack->top == -1);
- }
- // Cek apakah stack penuh
- bool isFull(struct Stack* stack) {
- return (stack->top == MAX_STACK_SIZE - 1);
- }
- // Menambahkan buku ke dalam stack (lemari)
- void push(struct Stack* stack, const char* bookTitle) {
- if (!isFull(stack)) {
- stack->top++;
- strcpy(stack->books[stack->top], bookTitle);
- printf("Buku '%s' berhasil ditambahkan ke dalam lemari.\n", bookTitle);
- } else {
- printf("Lemari sudah penuh, tidak bisa menambahkan buku.\n");
- }
- }
- // Mengambil buku dari stack (lemari)
- void pop(struct Stack* stack) {
- if (!isEmpty(stack)) {
- printf("David mengambil buku '%s' dari lemari.\n", stack->books[stack->top]);
- stack->top--;
- } else {
- printf("Lemari sudah kosong, tidak ada buku yang dapat diambil.\n");
- }
- }
- int main() {
- struct Stack lemariDavid;
- initStack(&lemariDavid);
- // Menambahkan buku-buku ke dalam lemari
- push(&lemariDavid, "The Secret Garden");
- push(&lemariDavid, "The Catcher in the Rye");
- push(&lemariDavid, "Harry Potter and the Sorcerer's Stone");
- push(&lemariDavid, "To Kill a Mockingbird");
- push(&lemariDavid, "1984");
- push(&lemariDavid, "The Great Gatsby");
- push(&lemariDavid, "Pride and Prejudice");
- // David mengambil buku-buku sesuai keinginannya
- pop(&lemariDavid); // Mengambil buku "Pride and Prejudice"
- pop(&lemariDavid); // Mengambil buku "The Great Gatsby"
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement