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

Разобрать устройство двусвязного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread760190.html
Доброе дня, прошу вас помочь в решение данной задачи. Написать программу, демонстрирующую работу с объектами двух типов: Т1 и Т2, для чего создать систему соответствующих классов. Каждый объект должен иметь идентификатор (в виде произвольной строки символов) и одно или несколько полей для хранения состояния объекта (один класс является потомком другого). Клиенту (функции main) должны быть...
C++ Работа с подматрицей Программа формирует матрицу из случайных чисел, в программу вводятся размеры подматрицы этой матрицы (счет идет от левого верхнего угла), программа определяет минимальный элемент в введенной подматрице и присваивает его значение всем элементам вне подматрицы. Простите если криво объяснила. #include <iostream> #include <locale.h> #include <iomanip> #include <math.h> #include <ctime> ... http://www.cyberforum.ru/cpp-beginners/thread760171.html
C++ Шаблон массива указателей на заголовки списков
Вот само задание: "Шаблон структуры данных - массив указателей на заголовки списков. Элемент списка содержит указатель на строку (При включении последним предусмотреть ограничение длины текущего списка и переход к следующему)". Я решил сначала сделать сам шаблон списка и узла, перегрузил операторы вывода списка на экран, а также ввода/вывода узла списка. Все отлично работает. //шаблон...
Удалить из массива элементы встречающиеся менее трёх раз C++
Дан массив целочисленный N. Удалить из массива элементы встречающиеся менее трёх раз, и вывести размер полученного массива и его содержимое. Добавлено через 34 минуты #include<iostream> #include<Windows.h> #include "time.h" #include "stdlib.h" using namespace std; void main() {
C++ Создать массив структур. Дана информация о пяти комнатах в общежитии. (borland) http://www.cyberforum.ru/cpp-beginners/thread760135.html
Создать массив структур и выполнить задание согласно своему варианту. 3. Дана информация о пяти комнатах в общежитии. Структура имеет вид: фамилии, номер комнаты, факультет, площадь. Вывести данные о комнатах по заданному факультету, а также количество комнат на этом факультете.
C++ Организация вывода списка При простом связанном хранении каждый элемент списка представляет собой структуру nd, состоящую из двух элементов: val - предназначен для хранения элемента списка, n - для указателя на структуру, содержащую следующий элемент списка. На первый элемент списка указывает указатель dl. Для всех операций над списком используется описание: typedef struct nd { float val; ... подробнее

Показать сообщение отдельно
Fiks19
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 44

Разобрать устройство двусвязного списка - C++

13.01.2013, 11:41. Просмотров 898. Ответов 4
Метки (Все метки)

Ребят помогите понять как это устроено, общий смысл я понял.
Не могу разобраться как выводить по указателям. У меня выводит с конца в начало как вывести наоборот.
Как вообще правильнее оперировать этими указателями.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
 
struct list
{
int key;//адресное поле
list *next;//указатель на следующий элемент
list *pred;//указатель на предыдущий элемент
};
 
 
list* make_point()
//создание одного элемента
{
 list *p=new(list);//выделяем память под первый элемент
 p->next=0;//обнуляем адресное поле
 p->pred=0;
 cout<<"\n1";
 cin >> p->key;//вводим значение информационного поля
 
 
 return p;//определили конец списка путем присвоению указателю p занчение 0(указатель beg)
}
 
 
list* make_list(int n)
//создание списка
{
list *p,*beg;
beg=make_point();//создаем первый элемент
for(int i=1;i<n;i++)
{
p=make_point();//создаем один элемент
//добавление элемента в начало списка
p->next=beg;//связываем р с первым элементом
beg->pred=p;//связываем первый элемент с p
beg=p;// p становится первым элементом списка
}
return beg;
}
 
void print_list(list *beg,list *p){
 
 
 
 while(beg!=0){
  cout<<beg->key<<"\t";
  beg=beg->pred;
 
 }
 
 
}
 
int main(){
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 
 int c;
 cin>>c;
 
   list*lp=make_list(c);
   cout<<"\n";
   print_list(lp,lp);
     getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru