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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файлы в директории. http://www.cyberforum.ru/cpp-beginners/thread191220.html
Задача такова: Есть .exe программы. Лежит в папке. Нужна функция которая создаст массив или список имён файлов находящихся в данной директории. И ещё вопрос: Имена файлов будут полные или...
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(т.е перед исполнением задачи требуется указать размерность) их... подробнее

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

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

14.11.2010, 19:38. Просмотров 915. Ответов 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;
Заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru