Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Use Dr. Racket: Beginning Student Language Design a function that will consume a

ID: 3784994 • Letter: U

Question

Use Dr. Racket: Beginning Student Language

Design a function that will consume a list of positive whole numbers and produce a stack of solid black squares, where the size of each square corresponds to a number in the list. The squares should be stacked bottom to top with square size corresponding to first to last element in the list. For example: given the list with values 20 40, 10 the result should be and image with 3 squares, each above the previous You must include any necessary data definitions. You can use any data definitions you have designed previously in this file.

Explanation / Answer

#include #include struct node { int info; struct node *ptr; }*top,*top1,*temp; int topelement(); void push(int data); void pop(); void empty(); void display(); void destroy(); void stack_count(); void create(); int count = 0; void main() { int no, ch, e; printf(" 1 - Push"); printf(" 2 - Pop"); printf(" 3 - Top"); printf(" 4 - Empty"); printf(" 5 - Exit"); printf(" 6 - Dipslay"); printf(" 7 - Stack Count"); printf(" 8 - Destroy stack"); create(); while (1) { printf(" Enter choice : "); scanf("%d", &ch); switch (ch) { case 1: printf("Enter data : "); scanf("%d", &no); push(no); break; case 2: pop(); break; case 3: if (top == NULL) printf("No elements in stack"); else { e = topelement(); printf(" Top element : %d", e); } break; case 4: empty(); break; case 5: exit(0); case 6: display(); break; case 7: stack_count(); break; case 8: destroy(); break; default : printf(" Wrong choice, Please enter correct choice "); break; } } } /* Create empty stack */ void create() { top = NULL; } /* Count stack elements */ void stack_count() { printf(" No. of elements in stack : %d", count); } /* Push data into stack */ void push(int data) { if (top == NULL) { top =(struct node *)malloc(1*sizeof(struct node)); top->ptr = NULL; top->info = data; } else { temp =(struct node *)malloc(1*sizeof(struct node)); temp->ptr = top; temp->info = data; top = temp; } count++; } /* Display stack elements */ void display() { top1 = top; if (top1 == NULL) { printf("Stack is empty"); return; } while (top1 != NULL) { printf("%d ", top1->info); top1 = top1->ptr; } } /* Pop Operation on stack */ void pop() { top1 = top; if (top1 == NULL) { printf(" Error : Trying to pop from empty stack"); return; } else top1 = top1->ptr; printf(" Popped value : %d", top->info); free(top); top = top1; count--; } /* Return top element */ int topelement() { return(top->info); } /* Check if stack is empty or not */ void empty() { if (top == NULL) printf(" Stack is empty"); else printf(" Stack is not empty with %d elements", count); } /* Destroy entire stack */ void destroy() { top1 = top; while (top1 != NULL) { top1 = top->ptr; free(top); top = top1; top1 = top1->ptr; } free(top1); top = NULL; printf(" All stack elements destroyed"); count = 0; }
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote