how to create a function that would be able to insert an element after a specific item.
Here's my list:
Code:struct list{ char c; list *next; }*p,*cur,*prev,*top; void show(void); void push(char value); void pop(char value); int main() { top=0; char key,value; int done=false; while(!done){ system("cls"); show(); printf("\nA)dd\nD)elete\nQ)uit\n"); key=getchar(); switch(toupper(key)) { case 'A': value=getch(); push(value); break; case 'D': printf("\nDel:\n"); value=getch(); pop(value); break; case 'Q': done=true; break; } } return 0; } void push(char value) { printf("\nInput:\n"); p=new list; p->c=value; p->next=NULL; while(cur && p->c > cur->c) { prev=cur; cur=cur->next; } if(prev==NULL) { p->next=top; top=p; } else { p->next=cur; prev->next=p; } } void pop(char value) { prev=top;cur=top->next; if(value==top->c) { p=top; top=top->next; free (p); } else { while(cur!=NULL && value!=cur->c) { prev=cur; cur=cur->next; } if(cur!=0) { p=cur; prev->next=cur->next; free (p); } } } void show() { p=top; if(p==0) printf("\n list is empty\n"); else printf("\nLIST:\n"); while(p) { printf("%c\n",p->c); p=p->next; } }
Bookmarks