Форум программистов, компьютерный форум CyberForum.ru

динамический список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файлы в директории. http://www.cyberforum.ru/cpp-beginners/thread191220.html
Задача такова: Есть .exe программы. Лежит в папке. Нужна функция которая создаст массив или список имён файлов находящихся в данной директории. И ещё вопрос: Имена файлов будут полные или просто название с расширением? Если кто знает дайте пожалуйста информацию по этому поводу. Раньше как то не сталкивался с этим. . . А если надо было трогать другие файлы то пользовался system cmd.
C++ Преобразование числа Дано натуральное число. От этого числа отнимем суму его цыфр. От нового числа опять отнимем суму его цыфр. Так будем делать до тех пор, пока новое число больше нуля. Сколько раз будем выполнять даную операцию? О_о http://www.cyberforum.ru/cpp-beginners/thread191216.html
Как открыть файл в потоке ifstream? C++
если имя файла храниться в переменной String s;
C++ Дано натуральное число. Верно ли, что в его десятичной записи есть шесть единиц подряд?
Пожалуйста, помогите с программой. Задание - Дано натуральное число. Верно ли, что в его десятичной записи есть шесть единиц подряд?
C++ Массивы структур http://www.cyberforum.ru/cpp-beginners/thread191206.html
Задание № 5. Тема: Функции. Динамические массивы и структуры Сформировать одномерный динамический массив порядка N, элементы которого имеют указанную ниже структуру, и организовать обработку его данных в соответствии с вариантом задания. Примечание: для связанных данных, которые обязательно есть в каждом варианте (например, фамилия, имя, отчество или день, месяц, год и др.) формировать...
C++ Решение уравнений с матрицами нужно решить большое уравнение с матрицами M = (y* A-A*B)*(B+x)-A*y*x найти М A и B - квадратные матрицы размерности больше 2(т.е перед исполнением задачи требуется указать размерность) их значения задаются рандомно, в интервале от -10 до 10 x и y - произвольные числа, значения которых тоже указывается подробнее

Показать сообщение отдельно
Boooze
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 4

динамический список - C++

14.11.2010, 19:38. Просмотров 906. Ответов 3
Метки (Все метки)

Всем здраствуйте .
В проге надо создать динамический список и реализовать всякие функции для редактирования и преобразования элементов дин.списка.
Вот для начала код списка ,а так же ввода и вывода данных из него:
Код:
Код
#include <stdio.h>
#include <conio.h>
#include <string.h>

struct info
{
int nomer;
char model [20];
char proi [20];
};

struct elem
{
info har;
elem *next;
};

elem *first, //указатель начала списка 
     *last,   //указатель на очередной элемент
     *list;   //указатель на элементы списка

int n;

void vvod (){

int zn;
printf ("Vvedite dannie\n");
n = 1;
first = new elem;
(*first).har.nomer = n;
printf ("\nVvedite model:");
scanf ("%s", (*first).har.model);
printf ("\nVvedite proizvoditelya:");
scanf ("%s", (*first).har.proi);
first ->next = NULL;
last = first;
int flag = 1;
while (flag)
{
printf ("prodoljit?\n 1-da\n 0-net\n");
scanf ("%d", &flag);
clrscr();
if (flag){
n++;
list = new elem;
(*list).har.nomer = n;
printf ("\nVvedite model");
scanf ("%s", (*list).har.model);
printf ("\nVvedite proi:");
scanf ("%s", (*list).har.proi);
list->next = NULL;
last->next = list;
last=list;
}
}
}

void vivod (){
list = first;
clrscr;
while (list)
{
printf ("nomer: \t");
printf ("%d\n",(*list).har.nomer);
printf ("model: \t");
printf ("%s\n",(*list).har.model);
printf ("proizvoditel: \t");
printf ("%s\n",(*list).har.proi);
list=list->next;
}
getch();
}
Для начала у меня возникают проблемы в следующем:
При поиске по списку:
Код:
elem *poisk(){


			char mod;
			int flag;
			printf("введите модель = ");
			scanf("%d",&mod);
			list=last=first;
			while ((last)&&(last->har.model!=mod))
				{
				last=list;
				list=list->next;
				}
			if(!last)  printf("элемент не найден\n");
			else printf("номер %d  модель %s производитель \n" ,(*last).har.nomer,(*last).har.proi,(*last).har.model);
При поиске выдает ошибку на last->har.model!=mod,пишет cannot conver char to char * .но если делать поиск не по символьному полю ,а по числовому (например по номеру) то все в порядке.
2.Вторая проблема при добавлении элемента в конец списка:
Код:
Код
void aite()
{
	char mod[20];
	char inc[20];
	n++;
	last=first;
	while(last->next) last=last->next;
	list=new elem;
	(*list).har.nomer=n;
       	printf("\nvvedite model telephona :\n ");
	scanf("%s",mod);
	(*list).har.model=mod;
	printf("\nvvedite proizvoditelya telephona : \n");
	scanf("%s",&inc);
	(*list).har.proi=inc;
	
	list->next=NULL;
	last->next=list;
getch();
}
Ошибку выписывает на (*list).har.model=mod; и пишет "lvalue required".
3.Как прроизвести обмен элементов заданного мною списка?
Для начала я ввожу ,например,две переменные n1 и n2.
Затем ставлю указатель last и list на элементы списка ,у которых значения определенных полей совпало с введенными значениями в переменные n1 и n2.могу ли я дальше поменять элементы в списке следующим образом :
Код:
Код
last=temp;   //temp - еще одна ссылка
last=list;
list=temp;
Заранее спасибо)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru