IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Проблема с организацией списка FIFO, C++
ninja
сообщение 17.05.2010 19:55
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 103
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый вечер. Необходимо решить следующую задачу:

Разработать алгоритм и программу. Организовать и заполнить два линейных динамических списка L1 и L2 типа FIFO, элементами которых являются целые числа, принимающие значения в диапазоне типа Integer.
Выполнить следующие действия над списками:
- удалить из списка L1 все отрицательные числа и поместить их в список L2, взяв их по модулю;
- определить включает ли список L1 список L2, если включение имеет место, то объединить эти списки в один и упорядочить по возрастанию значений элементов.
Действия выполнятся в произвольном порядке по выбору пользователя с отображением результатов преобразований. При заполнении списка и добавлении элементов выполнить анализ объема доступной динамической памяти.


Начал писать программу столкнулся с такой проблемой необходимо в функцию передать 2 значения, из другой функции т.е. у меня функция spisok_L1 которая заполняет список, и функция prosmotr, но чтобы вывести значения из памяти мне необходимо знать адрес откуда начинать, и когда заканчивать вывод. Переменная schet4ik отвечает за количество элементов в списке, эта переменная передается, но как мне передать переменную которая указывает на начало списка.




#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
int menu ()
	{
	 char menu[5][15]={{"Dobavlenie"},{"Prosmotr"},{"Sortirovka"},{"ochistka file"},{"exit"}};
	 int index=0;
	 char ch='\0';
	 int i,j=0;
	 while (ch!=13)
		{
		 clrscr();
		 for (i=0;i<=4;i++)
			{
			 if (i==index)
			 textattr(70);
			 j=0;
			 while (menu[i][j]!='\0')
			 cprintf("%c",menu[i][j++]);
			 printf("\n");
			 textattr(07);
			 }
	ch=getche();
	if (ch=='\0') ch=getch();
	if (ch==72) index--;
	if (ch==80) index++;
	if (index==-1)  index=4;
	if (index==5) index=0;
	}
return index;
	}

struct L1
  {
   int info;
   struct L1 *next;
  };


spisok_L1()
{
	L1 *head, *p;//*tail;
	int chislo=0;
	char ch='\0';
	int schet4ik=0;

	head=new(L1);
	p=head;

	while (ch!='n')
	    {
		clrscr();
		cout << "Vvedite element spiska " << endl;
		cin >>chislo;
		cout << endl;
		(*p).info=chislo;
		(*p).next=new(L1);
		p=(*p).next;
		//tail=p;
		schet4ik++;
		cout << "Prodoljitb vvod? [y/n]" << endl;
		ch = getche();
		cout << endl;
	   }
clrscr();
p=head;
//while (p!=tail)
	{
	 //printf("%d",p->info);
	 //p=p->next;
	}
return schet4ik;
}





int prosmotr (int schet4ik)
{
L1 *p, *head;
int k=0;

p=head;
while (k!=schet4ik)
{
 cout << (*p).info << endl;
 p=(*p).next;
 k++;
}

//for (p=head;p!=tail;p=(*p).next)
  //	cout << (*p).info << endl;

getche();
return 0;
}

void main ()
{
L1 *head, *p, *tail;
int index;
int m=0;
	do
	 {
	  index=menu();
	  switch (index)
	    {
	     case 0:{
		     m=spisok_L1();
		     break;
		    }
	     case 1:{
		     prosmotr(m);
		     break;
		    }
	     case 2:{

		     break;
		    }
	     case 3:{

		     break;
		    }
	     case 4:{

		     exit(1);
		    }

	    }
	 }
	while (index!=4);


getch();
}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ninja   Проблема с организацией списка FIFO   17.05.2010 19:55
volvo   Через двойной указатель. Вот так, например: int s...   17.05.2010 20:35
ninja   Спасибо огромное работает.   18.05.2010 17:41
ninja   Появилась еще одна проблема: когда запускаю програ...   18.05.2010 19:09
volvo   Я устал уже догадываться, тебе нужен С или С++, ты...   18.05.2010 19:54
ninja   Спасибо огромное Владимир, вообще нужно на С++, я ...   18.05.2010 20:57
volvo   Вот это - больше похоже на С++, чем то, что было н...   19.05.2010 17:55
ninja   ага, у меня обычный dos-овский Turbo C++, Владимир...   19.05.2010 23:22
ninja   Добавил еще 1 функцию Sort () которая должна сорти...   20.05.2010 16:39
volvo   Зачем? Достаточно было сделать: List myList; ...   20.05.2010 17:22
ninja   Отсортировать нужно следующим образом, в 1м списке...   20.05.2010 17:36
volvo   Ты постоянно что-то недоговариваешь... Ну, допусти...   20.05.2010 17:41
ninja   Извиняюсь.... Необходимо сначала разделить 1й спис...   20.05.2010 18:34
volvo   Значит, смотри что у меня получилось: Рассказыв...   20.05.2010 21:47
ninja   Владимир, тестировал сегодня программу, получились...   21.05.2010 14:58
volvo   Ну что ж, проверяем: И я вводил: Что я делал н...   21.05.2010 15:38
ninja   Вводил тоже что и Вы у меня совсем другие результа...   21.05.2010 16:03
volvo   У меня GCC, там все нормально, вечером попробую пр...   21.05.2010 17:12
ninja   Спасибо, попробовал по-другому ввел сначала положи...   21.05.2010 17:18
volvo   Ну, скачай. Как скачаешь - на GCC (и на любом друг...   21.05.2010 22:31
ninja   скачал GCC, попробовал запустить вроде работает но...   22.05.2010 0:01
volvo   Потому что функция clrscr - это "примочка...   22.05.2010 0:09
ninja   я имел ввиду синтаксис вот например private: ...   22.05.2010 15:50


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 12:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"