Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 32
1

Разработать программу, имитирующую работу стека

07.02.2018, 22:40. Показов 1636. Ответов 2
Метки нет (Все метки)

Составить структуру и разработать программу, имитирующую работу стека.
Предусмотреть возможность задания пользователем размера стека и проведения
операций записи в стек (push) и чтения из стека (pop) символов (char).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2018, 22:40
Ответы с готовыми решениями:

Разработать программу, имитирующую работу функционального калькулятора
Разработать программу, имитирующую работу функционального калькулятора, который позволяет выбрать с...

Модифицировать программу, имитирующую работу стека, так, чтобы после каждой из операций push и pop на экран выводился сн
Модифицировать программу, имитирующую работу стека, так, чтобы после каждой из операций push и pop...

Создать программу, имитирующую работу с базой данных
Задача 1. Создать программу, имитирующую работу с базой данных по предложенной предметной области...

Написать программу, имитирующую работу простейшего калькулятора
Написать программу, записывающую в каждый элемент двумерного массива результат вычисления функции,...

2
35 / 34 / 17
Регистрация: 15.06.2017
Сообщений: 184
08.02.2018, 00:49 2
"Язык программирования С" Керниган, Ричи. Программа, имитирующая работу калькулятора - как раз то что Вам нужно. В этой книге ответы практически на все вопросы программирования на С
0
25 / 26 / 16
Регистрация: 27.09.2015
Сообщений: 110
08.02.2018, 09:47 3
Лучший ответ Сообщение было отмечено Алексей79547 как решение

Решение

У Дейтелов отлично разбираются и очередь, и стек, и список, и дерево. Напишите в личку почту - скину книги в электронке. Вот из их книги.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// Fig. 12.8: fig12_08.c
// A simple stack program
#include <stdio.h>
#include <stdlib.h>
 
// self-referential structure                     
struct stackNode {                                   
   int data; // define data as an int             
   struct stackNode *nextPtr; // stackNode pointer
}; // end structure stackNode                     
 
typedef struct stackNode StackNode; // synonym for struct stackNode
typedef StackNode *StackNodePtr; // synonym for StackNode*
 
// prototypes
void push( StackNodePtr *topPtr, int info );
int pop( StackNodePtr *topPtr );
int isEmpty( StackNodePtr topPtr );
void printStack( StackNodePtr currentPtr );
void instructions( void );
 
// function main begins program execution
int main( void )
{ 
   StackNodePtr stackPtr = NULL; // points to stack top
   unsigned int choice; // user's menu choice
   int value; // int input by user
 
   instructions(); // display the menu
   printf( "%s", "? " );
   scanf( "%u", &choice );
 
   // while user does not enter 3
   while ( choice != 3 ) { 
 
      switch ( choice ) { 
         // push value onto stack
         case 1:      
            printf( "%s", "Enter an integer: " );
            scanf( "%d", &value );
            push( &stackPtr, value );
            printStack( stackPtr );
            break;
         // pop value off stack
         case 2:      
            // if stack is not empty
            if ( !isEmpty( stackPtr ) ) {
               printf( "The popped value is %d.\n", pop( &stackPtr ) );
            } // end if
 
            printStack( stackPtr );
            break;
         default:
            puts( "Invalid choice.\n" );
            instructions();
            break;
      } // end switch
 
      printf( "%s", "? " );
      scanf( "%u", &choice );
   } // end while
 
   puts( "End of run." );
} // end main
 
// display program instructions to user
void instructions( void )
{ 
   puts( "Enter choice:\n"
      "1 to push a value on the stack\n"
      "2 to pop a value off the stack\n"
      "3 to end program" );
} // end function instructions
 
// insert a node at the stack top
void push( StackNodePtr *topPtr, int info )
{ 
   StackNodePtr newPtr; // pointer to new node
 
   newPtr = malloc( sizeof( StackNode ) );
 
   // insert the node at stack top
   if ( newPtr != NULL ) {           
      newPtr->data = info;           
      newPtr->nextPtr = *topPtr;     
      *topPtr = newPtr;              
   } // end if                    
   else { // no space available
      printf( "%d not inserted. No memory available.\n", info );
   } // end else
} // end function push
 
// remove a node from the stack top
int pop( StackNodePtr *topPtr )
{ 
   StackNodePtr tempPtr; // temporary node pointer
   int popValue; // node value
 
   tempPtr = *topPtr;             
   popValue = ( *topPtr )->data;  
   *topPtr = ( *topPtr )->nextPtr;
   free( tempPtr );               
   return popValue;
} // end function pop
 
// print the stack
void printStack( StackNodePtr currentPtr )
{ 
   // if stack is empty
   if ( currentPtr == NULL ) {
      puts( "The stack is empty.\n" );
   } // end if
   else { 
      puts( "The stack is:" );
 
      // while not the end of the stack
      while ( currentPtr != NULL ) { 
         printf( "%d --> ", currentPtr->data );
         currentPtr = currentPtr->nextPtr;
      } // end while
 
      puts( "NULL\n" );
   } // end else
} // end function printList
 
// return 1 if the stack is empty, 0 otherwise
int isEmpty( StackNodePtr topPtr )
{ 
   return topPtr == NULL;
} // end function isEmpty
 
 
/**************************************************************************
 * (C) Copyright 1992-2013 by Deitel & Associates, Inc. and               *
 * Pearson Education, Inc. All Rights Reserved.                           *
 *                                                                        *
 * DISCLAIMER: The authors and publisher of this book have used their     *
 * best efforts in preparing the book. These efforts include the          *
 * development, research, and testing of the theories and programs        *
 * to determine their effectiveness. The authors and publisher make       *
 * no warranty of any kind, expressed or implied, with regard to these    *
 * programs or to the documentation contained in these books. The authors *
 * and publisher shall not be liable in any event for incidental or       *
 * consequential damages in connection with, or arising out of, the       *
 * furnishing, performance, or use of these programs.                     *
 *************************************************************************/
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2018, 09:47

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Требуется реализовать программу, имитирующую работу дирекции
Требуется реализовать программу, имитирующую работу дирекции.

Написать программу, имитирующую работу клавиатуры. Управление производится мышью
Здравствуйте, форумчане, очень нужна ваша помощь. В матлабе, можно сказать, пока что нуб, но хоть...

Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе файла
Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе...

Составить программу имитирующую работу процессора аккумуляторного типа при умножении целых и вещественных чисел
Ребята срочно нужна ваша помощь!) Помогите мне плиз с прогой,я в паскале ничего не смыслю(((( ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.