Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
1

Как запихнуть в очередь указатель на узел дерева?

12.02.2013, 22:23. Показов 882. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как запихнуть в очередь указатель на узел дерева

Добавлено через 16 минут
up?

Добавлено через 4 минуты
как создать из узлов двоичного дерева очередь??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2013, 22:23
Ответы с готовыми решениями:

Двоичное дерево: как, зная данный узел дерева, изменить его родительский узел?
как зная данный узел дерева измениь его родтельский узел? спасибо.

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив)
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая...

Удалить узел бинарного дерева
необходимо удалить узел, у которого нет потомков нужно обнулить ссылку предка и освободить память,...

Неправильно удаляет узел из бинарного дерева
Помогите подправить фунцию SearchDelete...Почему-то не работет. //13. Побудувати довільне...

9
 Аватар для Wolkodav
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 22:29 2
Вам как с STL можно? или ручками очередь?
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
12.02.2013, 22:31  [ТС] 3
ручками
0
 Аватар для Wolkodav
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 22:34 4
с классами знакомы?
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
12.02.2013, 22:38  [ТС] 5
знаком

Добавлено через 1 минуту
если взять просто список и двоичное дерево

со списком понятно

с двоичным деревом нет
0
 Аватар для Wolkodav
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 22:52 6
ну создайте класс- очередь, и поле пускай у него будет указатель на узел дерева. Вот и всё.

Добавлено через 4 минуты
Можете скинуть структуру дерева.
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
12.02.2013, 23:01  [ТС] 7
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#ifndef TREE_H
#define TREE_H
 
#include <iostream>
using std::cout;
using std::endl;
 
#include <new>
#include "Treenode.h"
 
#include "queue.h"// Подключаем класс queue(очередь)
 
// Tree class-template definition
template< typename NODETYPE >
class Tree
{
public:
   Tree(); // constructor
   void insertNode( const NODETYPE & );
   void preOrderTraversal() const;
   void inOrderTraversal() const;
   void postOrderTraversal() const;
   
   void levelOrder();
 
private:
   TreeNode< NODETYPE > *rootPtr;
 
   // utility functions
   void insertNodeHelper( TreeNode< NODETYPE > **, const NODETYPE & );
   void preOrderHelper( TreeNode< NODETYPE > * ) const;
   void inOrderHelper( TreeNode< NODETYPE > * ) const;
   void postOrderHelper( TreeNode< NODETYPE > * ) const;
}; // end class Tree
 
// constructor
template< typename NODETYPE >
Tree< NODETYPE >::Tree() 
{ 
   rootPtr = 0; // indicate tree is initially empty 
} // end Tree constructor
 
// insert node in Tree
template< typename NODETYPE >
void Tree< NODETYPE >::insertNode( const NODETYPE &value )
{ 
   insertNodeHelper( &rootPtr, value ); 
} // end function insertNode
 
// utility function called by insertNode; receives a pointer
// to a pointer so that the function can modify pointer's value
template< typename NODETYPE >
void Tree< NODETYPE >::insertNodeHelper( 
   TreeNode< NODETYPE > **ptr, const NODETYPE &value )
{
   // subtree is empty; create new TreeNode containing value
   if ( *ptr == 0 )  
      *ptr = new TreeNode< NODETYPE >( value );
   else // subtree is not empty
   {
      // data to insert is less than data in current node
      if ( value < ( *ptr )->data )
         insertNodeHelper( &( ( *ptr )->leftPtr ), value );
      else
      {
         // data to insert is greater than data in current node
         if ( value > ( *ptr )->data )
            insertNodeHelper( &( ( *ptr )->rightPtr ), value );
         else // duplicate data value ignored
            cout << value << " dup" << endl;
      } // end else
   } // end else
} // end function insertNodeHelper
 
// begin preorder traversal of Tree
template< typename NODETYPE > 
void Tree< NODETYPE >::preOrderTraversal() const
{ 
   preOrderHelper( rootPtr ); 
} // end function preOrderTraversal
 
// utility function to perform preorder traversal of Tree
template< typename NODETYPE >
void Tree< NODETYPE >::preOrderHelper( TreeNode< NODETYPE > *ptr ) const
{
   if ( ptr != 0 ) 
   {
      cout << ptr->data << ' '; // process node          
      preOrderHelper( ptr->leftPtr ); // traverse left subtree 
      preOrderHelper( ptr->rightPtr ); // traverse right subtree
   } // end if
} // end function preOrderHelper
 
// begin inorder traversal of Tree
template< typename NODETYPE >
void Tree< NODETYPE >::inOrderTraversal() const
{ 
   inOrderHelper( rootPtr ); 
} // end function inOrderTraversal
 
// utility function to perform inorder traversal of Tree
template< typename NODETYPE >
void Tree< NODETYPE >::inOrderHelper( TreeNode< NODETYPE > *ptr ) const
{
   if ( ptr != 0 ) 
   {
      inOrderHelper( ptr->leftPtr ); // traverse left subtree  
      cout << ptr->data << ' '; // process node                
      inOrderHelper( ptr->rightPtr ); // traverse right subtree
   } // end if
} // end function inOrderHelper
 
// begin postorder traversal of Tree
template< typename NODETYPE >
void Tree< NODETYPE >::postOrderTraversal() const
{ 
   postOrderHelper( rootPtr ); 
} // end function postOrderTraversal
 
// utility function to perform postorder traversal of Tree
template< typename NODETYPE >
void Tree< NODETYPE >::postOrderHelper( TreeNode< NODETYPE > *ptr ) const
{
   if ( ptr != 0 ) 
   {
      postOrderHelper( ptr->leftPtr ); // traverse left subtree  
      postOrderHelper( ptr->rightPtr ); // traverse right subtree
      cout << ptr->data << ' '; // process node                  
   } // end if
} // end function postOrderHelper
 
 
template< typename NODETYPE >
void Tree< NODETYPE >::levelOrder()
{
    Queue<NODETYPE> data;//создаем очередь
    data.enqueue(rootPtr);
 
    /*
    NODETYPE value;
    data.dequeue(value);
    cout<<value<<endl;
    data.dequeue(value);
*/
 
    cout<<"enter good work"<<endl;
}
 
#endif
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
#ifndef TREENODE_H
#define TREENODE_H
 
// forward declaration of class Tree
template< typename NODETYPE > class Tree;  
 
// TreeNode class-template definition
template< typename NODETYPE >
class TreeNode 
{
   friend class Tree< NODETYPE >;
public:
   // constructor
   TreeNode( const NODETYPE &d )   
      : leftPtr( 0 ), // pointer to left subtree
        data( d ), // tree node data
        rightPtr( 0 ) // pointer to right substree
   { 
      // empty body 
   } // end TreeNode constructor
 
   // return copy of node's data
   NODETYPE getData() const 
   { 
      return data; 
   } // end getData function
private:
   TreeNode< NODETYPE > *leftPtr; // pointer to left subtree
   NODETYPE data;
   TreeNode< NODETYPE > *rightPtr; // pointer to right subtree
}; // end class TreeNode
 
#endif
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template< typename NODETYPE >
void Tree< NODETYPE >::levelOrder()
{
    Queue<NODETYPE> data;//создаем очередь
    data.enqueue(rootPtr); <<---------------здесь пытаюсь запихнуть в очередь
 
    /*
    NODETYPE value;
    data.dequeue(value);
    cout<<value<<endl;
    data.dequeue(value);
*/
 
    cout<<"enter good work"<<endl;
}
0
 Аватар для Wolkodav
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 23:16 8
Так и создавайте очередь
C++
1
Queue<TreeNode*> data
Вот вам указатель на узел дерева.
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
12.02.2013, 23:18  [ТС] 9
буду пробовать...
0
 Аватар для Wolkodav
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 23:19 10
Вы в очереди будете хранить указатель на узел дерева, а вот откуда вы его выцепите, указатель это другое дело.
0
12.02.2013, 23:19
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2013, 23:19
Помогаю со студенческими работами здесь

Как при открытии формы перейти на заданный узел построенного дерева в TreeView?
Други, подскажите как при открытии формы сразу перейти на заданный узел построенного дерева. По...

Как сделать, чтобы при клике на каждый узел дерева открывалась соответствующая страница?
В delphi создаю электронный справочник с помощью TreeView и Web browser. Как сделать чтобы при...

Как запихнуть запихнуть объект Me в Long?
Как запихнуть Me в Long, а потом достать его? Спасибо?

Delete не полностью удаляет узел дерева
есть дерево типа struct Tree { char *name; int info; Tree *left,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Создание макробота, как способа экономии времени и варианта ИИ.
Hrethgir 28.01.2025
Чисто теоретически, создание ИИ на ПК можно разделить на части. Создать бота отвечающего за железо (эмулирование вкл, выкл, мышь, клавиатура), другой бот осуществляет распознавание изображений,. . .
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru