Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОКСМ / Отчеты / PR3

.docx
Скачиваний:
20
Добавлен:
10.07.2016
Размер:
35.31 Кб
Скачать

Міністерство освіти і науки України

Харківський патентно-комп’ютерний коледж

Практична робота №3

з дисципліни «Алгоритми і структури даних»

Тема: «Лінійні структури даних»

Студента групи П-22

Русаков Д.Д.

2014

Завдання: Створити Стек.

Хід роботи:

Стек - це такий лінійний список, в якому і додавання нових і видалення існуючих елементів можливе тільки з головного елемента. Стек часто називають структурою LIFO, що означає перший прийшов, останнім пішов.

Лістинг програми:

#include "stdafx.h"

#include<iostream>

#include<fstream>

#include<cstring>

using namespace std;

struct Element

{

char data;

Element *next;

};

class List

{

private:

Element * head;

public:

List()

{

head=NULL;

}

~List();

void Push(char);

char Pop();

bool isEmpty();

void Show();

void AddFirst (char d);

};

void List::Push(char d)

{

Element *en=new Element;

en->data=d;

en->next=head;

head=en;

}

void List::AddFirst (char d)

{

Element*en=new Element;

en->data=d;

en->next=head;

head=en;

}

char List::Pop()

{

if(isEmpty())

return '*';

Element *pe=head;

char tmp=head->data;

head=head->next;

delete pe;

return tmp;

}

bool List::isEmpty()

{return head?false:true;}

void List::Show()

{

while(head)

{

cout<<Pop();

}

}

List::~List()

{

while(head)

{

Element *en=head;

head=head->next;

delete en;

}

}

int main()

{

char tmp[100];

int nn;

ifstream ifs("D:\\P22\\1.txt",ios::app);

if(ifs)

{

while(!ifs.eof())

{

ifs.getline(tmp,100,'\0');

strcat(tmp,"|");

cout<<tmp;

}

nn=strlen(tmp);

}

List St;

int i=0;

cout<<nn<<endl;

for(i;i<nn;i++)

{

St.Push(tmp[i]);

}

St.Show();

cin.get();

}

Вхідні/вихідні дані:

Висновки:

У моєму прикладі стек був побудований на основі лінійного зв'язного списку, але стеки можуть реалізовуватися на різних структурах даних: на одновимірних статичних і динамічних масивах, на лінійних списках, за допомогою файлів. Загалом стек можна реалізувати на будь-якій структурі, в якій є можливість зберігати кілька елементів і якщо є то, куди можна зберігати дані.

Соседние файлы в папке Отчеты