49680 (Динамические структуры данных: дек), страница 2
Описание файла
Документ из архива "Динамические структуры данных: дек", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49680"
Текст 2 страницы из документа "49680"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
int s, count=0;
struct Node
{
int key;
Node *next;
};
class deq
{
private:
Node *first;
Node *last;
public:
deq()
{first=NULL;
last=NULL;}
void deq::add(int b)
{
Node *el=new Node;
el->key=b;
if (first==NULL)
{
el->next=first;
first=el;
last=first;
}
else
{
el->next=first;
first=el;
}
count++;
}
void deq::del()
{
Node *el=new Node;
el=first;
first=el->next;
delete el;
count--;
}
void deq::add_end(int b)
{
Node *el=new Node;
el->key=b;
last->next=el;
last=el;
last->next=NULL;
count++;
}
void deq::del_end()
{
Node *el=new Node;
el=first;
while (el->next->next!=NULL)
el=el->next;
delete el->next;
last=el;
last->next=NULL;
count--;
}
bool deq::prov()
{ Node *el=new Node;
el=first;
if (first==NULL)
return true;
else
return false;
}
void Draw ()
{
for (int i=0; i<10; i++)
Form1->StringGrid1->Cells[0][i]="";
Node* temp=first;
for (int i=0; i { Form1->StringGrid1->Cells[0][i]=temp->key; if (temp->next!=NULL) temp=temp->next; } } }; deq a; int i=0; //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { a.add(StrToInt(Edit2->Text)); a.Draw(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { a.add_end(StrToInt(Edit2->Text)); a.Draw(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { if(a.prov()) ShowMessage("Дек пуст. Нечего удалять") ; else a.del(); a.Draw(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { if(a.prov()) ShowMessage("Дек пуст!"); else ShowMessage("Дек не пуст!"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { Edit3->Text=StrToInt(count); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { if(a.prov()) ShowMessage("Дек пуст. Нечего удалять") ; else { a.del_end(); a.Draw();} } //--------------------------------------------------------------------------- Приложение 2 Форма Главная форма содержит: Label (Введите добавляемый элемент) GroupBox1 (Добавление элементов) Button1 (Добавление элемента в начало дека) Button2 (Добавление элемента в конец дека) GroupBox2 (Удаление элементов) Button3 (Удаление первого элемента) Button6 (Удаление последнего элемента) GroupBox3 (Другие функции) Button4 (Проверка на наличие элементов) Button5 (Узнать размер дека) Edit3 (Используется для вывода количества элементов в деке) StringGrid (Отображение дека) Edit2 (Значение, введенное с клавиатуры в Edit2, добавляется в дек) Рис. 4. Главная форма