49680 (609201), страница 2
Текст из файла (страница 2)
//---------------------------------------------------------------------------
#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. Главная форма