![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Виктория Константиновна |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 2 Регистрация: 22.4.2009 Город: Минск, Беларусь ![]() |
Помогите добавить новые элементы в струтктуру! Необходимо что бы структура содержала не менее 4 элементов! А то ничего не получается!! Плииииз!!!
Или покажите пример любой реализации стека с помощью структур, чтобы струткура содержала несколько записей. Заранее спасибо! Код #include <stdio.h> #include<stdlib.h> struct Stack { int data; struct Stack *next; }; typedef struct Stack StackN; typedef StackN *StackPtr; void push( StackPtr *,int); int pop(StackPtr*); int isEmpty(StackPtr); void printStack(StackPtr); void instructions(void); /*вставить значение в вершину стека*/ void push(StackPtr *top, int info) { StackPtr newP; newP=(StackPtr)malloc(sizeof(StackN)); if(newP!=NULL) { newP->data=info; newP->next=*top; *top=newP; } else printf("%d not inserted. No memory avaliable.\n",info); } /*стек пуст?*/ int isEmpty(StackPtr top) { return top==NULL; } int main() { StackPtr stackPtr=NULL; /*указывает на вершину стека*/ int choice, value; instructions(); printf("?"); scanf("%d",&choice); while(choice!=3) { switch(choice){ case 1: /*затолкнуть значение в стек*/ printf("Enter an integer: "); scanf("%d", &value); push(&stackPtr, value); printStack(stackPtr); break; case 2: /*вытолкнуть значение из стека*/ if(!isEmpty(stackPtr)) printf("The popped value is %d.\n", pop(&stackPtr)); printStack(stackPtr); break; default: printf("Invalid choice.\n\n"); instructions(); break; } printf("?"); scanf("%d", &choice); } printf("End of run.\n"); return 0; } /*вывести инструкции*/ void instructions(void) { printf("Enter choice:\n" "1 push a new element on the stack\n" "2 pop a new element off the stack\n" "3 end program\n"); } /*удалить значение из вершины стека*/ int pop(StackPtr *top) { StackPtr temp; int popValue; temp=*top; popValue=(*top)->data; *top=(*top)->next; free(temp); return popValue; } /*распечатать содержимое стека*/ void printStack(StackPtr current) { if(current==NULL) printf("The stack is empty.\n\n"); else { printf("The stack is:"); while(current!=NULL){ printf("%d ",current->data); current=current->next; } printf("NULL\n\n"); } } |
Inspektor |
![]()
Сообщение
#2
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 384 Регистрация: 11.6.2008 Город: Крыжополь Учебное заведение: БГТУ Вы: студент ![]() |
какая разница сколько записей? Объявляйте
Код struct Stack { int data0,data1,data2,data3,data4,data5,data6,data7,data8,data9,data10; struct Stack *next; }; и всё. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 17:31 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru