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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2015, 11:22   #1
Betelgeuse7
 
Регистрация: 15.02.2014
Сообщений: 9
По умолчанию Вставка элемента в середину и поиск по списку

Хеееелп! В с++ я шарю плохо. Есть прога, работающая со списком (код почти весь стырен), но идет только добавление в конец и начало списка. Препод сказал добавить поиск по списку и добавление в середину. Но я не понимат как сделат((
Код работы с формой:
Код:
#include <vcl.h>
#pragma hdrstop

#include "Listisok.h"
#include "MyList.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
Listach <String> list;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{

	String str = Edit1->Text;
	list.AddTail(str);
	Memo1->Clear();
	for(int i = 0; i < list.Size(); i++)
		Memo1->Lines->Add(list.Get(i));
	Edit1->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  String str = Edit1->Text;
	list.AddHead(str);
	Memo1->Clear();
	for(int i = 0; i < list.Size(); i++)
		Memo1->Lines->Add(list.Get(i));
	Edit1->Text = "";
}
Шаблон класса список:
Код:
#include <fstream>
 #ifndef ListoksH
#define ListoksH
template<class T>
struct Node
{
	T value;
	Node *next;
};
template<class T>
class Listach
{
	Node<T> *list;
	Node<T> *help;
	int size;
public:
Listach()
	{
		this->size = 0;
		this->list = NULL;
		this->help = NULL;
	}

    Node<T> GetSeek(int val)
    {
        Node<T>* tmp = this->list;
        while(tmp)
        {
            if(tmp->value==val)return tmp;
            tmp = tmp->next;
        }
	}
void AddTail(const T &value)
	{
		this->size++;
		if(!this->list)
		{
			this->list = new Node<T>();
			this->list->value = value;
			this->list->next = NULL;
			this->help = this->list;
		}
		else
		{
			this->help->next= new Node<T>();
			this->help = this->help->next;
			this->help->value = value;
			this->help->next = NULL;
		}
	}

	void AddHead(const T &value)
	{
		if(!this->list)
		{
			AddTail(value);
			return;
		}
		Node<T> *tmp = new Node<T>();
		tmp->value = value;
		tmp->next = this->list;
		this->list = tmp;
		this->size++;
	}
	T Get(int index)
	{
		int i=0;
		Node<T>* tmp = this->list;
		while(tmp)
		{
			if(i==index)return tmp->value;
			tmp = tmp->next;
			i++;
		}
	}

	int Size()
	{
		return this->size;
	}
};
#endif
Форма:
Изображения
Тип файла: png 2015-12-29 11-21-24 Скриншот экрана.png (9.2 Кб, 117 просмотров)
Betelgeuse7 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение элемента на n позиций назад по списку Nickolay0512 Общие вопросы C/C++ 0 14.10.2014 09:35
Вставка изображения по списку значений maximus111 Microsoft Office Excel 0 15.01.2014 22:24
Поиск и вставка элемента в массив.[Delphi] MariaD Помощь студентам 1 26.04.2013 22:11
Найдите ошибку в добавлении элемента к списку alex-soft Помощь студентам 0 20.01.2012 18:55
Вставка в середину строки Кинельски Общие вопросы Delphi 2 03.06.2010 12:19