DATA STRUCTURE IMPP
DATA STRUCTURE IMPP
data; p->data=q->data; q->data=t; p=p->next; q=q-=prev, }} void reverseprint(struct node * start) { temp=start; while(temp->next!=NULL) {temp=temp->next;} while(temp!=NULL) printf("%d\n" temp->data); temp=temp->prev; }} main() { int ch; struct node * head; clrscr(); head=temp=newnode=NULL; while(1)while(1) { printf("1.create\n2.display\n3.insert\n4.sear ch\n5.delete\n6.sort\n7.countnode\n8.revh ead\n9.reverseprint\n"); printf("enter no for ch:"); scanf("%d",&ch); switch(ch) { case 0: exit(0); break; case 1: head=create(); break; case 2: display(head); break; case 3: head=insert(head); break; case 4: search(head); break; case 5: head=delete(head); break; case 6: sort(head); break; case 7: printf("Y%d\n\n", countnode(head)); break; case 8: revhead(head); break; case 9: reverseprint(head); }}}Q3D. Write a function to reverse a string using stack.? #include#include #include #define size 15 char stk[size]; int top = -1; void push(char); char pop(); void is(char []); void main() { char str1[size]; printf("Enter a string: "); gets(str1); is(str1); getch(); } void push(char s) { top++; stk[top] =; } char pop() { char ch; ch = stk[top]; top--; return ch; void is(char str1[]) { inti; char str2[size]; for (i = 0; str1[i] != \O'; i++) { push(str1[i]); for (i = 0; top != -1; i++) { str2[i] = pop() } str2[i] = '\0'; printf("%s", str2); }