Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2013, 18:24   #1
4atty
 
Регистрация: 24.07.2011
Сообщений: 6
Радость Инициализация, добавление и удаление элементов в СТЕКЕ

День добрый,
нужна помощь со стеками.
Передо мною стоит задача:
1) Инициализировать СТЕК через связный список
2) Добавить элемент в СТЕК, вывести на экран СТЕК
3) Удалить элемент со СТЕКА, вывести на экран СТЕК

Мне кажется, что я создал не совсем СТЕК, а СТЕК с элементами ОЧЕРЕДИ, звучит как бред но... в общем я запутался.
Вот мой код:
Код:
// Stack (Test).cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;

const int del = 3;		//number of elements that we will delete

struct STACK
{
	float Value;
	STACK *Link;
};

struct Using_Stack
{
	STACK *Top, *Bot;
	void (*Init)(Using_Stack*);
	void (*Push)(Using_Stack*, float );
	float (*Pop)(Using_Stack*);
};

void Init_Sub (Using_Stack *MyStack)
{
	MyStack->Top = 0;	
	MyStack->Bot = 0;	
};

void Push_Sub (Using_Stack *MyStack, float Character)
{
	STACK *New_El = new STACK;
	New_El->Value = Character;
	New_El->Link = 0;
	if (MyStack->Top == 0)
	{
		MyStack->Top = New_El;
		MyStack->Bot = New_El;
	}
	else
	{
		MyStack->Bot->Link = New_El;
		MyStack->Bot = New_El;
	}
};

float Pop_Sub (Using_Stack *MyStack)
{
	STACK *Del;
	float Reading;
	if (MyStack->Top != 0)
	{
		Del = MyStack->Top;
		Reading = Del->Value;
		MyStack->Top = MyStack->Top->Link;
		delete Del;
	}
	return Reading;
};

void main ()
{
	Using_Stack *MyStack;
	MyStack = new Using_Stack;

	MyStack->Init = Init_Sub;
	MyStack->Push = Push_Sub;
	MyStack->Pop = Pop_Sub;

	MyStack->Init (MyStack);	//Initialization of Top and Bot
	int Add;
	float Symb;
	int i = 0;

	MyStack->Push (MyStack, 10);		//Recording of one value
	MyStack->Push (MyStack, 20);

	printf("Our Stack is...");
	printf("\n\n %c", MyStack->Top->Value);
	printf("\n %c", MyStack->Top->Link->Value);
	printf("\n\n Enter the value you want to ADD \n");
	scanf_s("%c", &Symb);
	MyStack->Push (MyStack,Symb);

	printf("\n\n So, now our Stack is");
	printf("\n\n %c", MyStack->Top->Value);
	printf("\n %c", MyStack->Top->Link->Value);
	printf("\n %c \n\n", MyStack->Top->Link->Link->Value);	//???

	printf("\n And now we will DELETE one value \n\n\n");
	float Read;
	Read = MyStack->Pop (MyStack);		//Reading of one value
	printf("\n Value which we will delete is - ");
	printf("%c \n\n", Read);
	printf("And now, our Stack is");
	printf("\n\n %c", MyStack->Top->Value);
	printf("\n %c \n\n\n", MyStack->Top->Link->Value);
	
}
Буду благодарен за помощь.
4atty вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск,добавление и удаление элементов в таблице (массив структур) Dimas23.09.93 Помощь студентам 0 11.12.2012 16:39
количество элементов в стеке svkpro Помощь студентам 8 30.11.2012 22:40
Добавление и удаление Shmel9 Microsoft Office Access 2 22.11.2012 02:04
Добавление и удаление элементов из массива строк Alex2391 Общие вопросы Delphi 1 04.03.2011 17:59
Добавление/Удаление CrazyN00b Помощь студентам 0 28.11.2010 17:38