@Rikog

Cписки и очереди, их реализация?

По заданию нужно реализовать очередь с приоритетом в виде списка. Возникла проблема при выводе элементов. header file
#include <iostream>
#include <string>

using namespace std;

struct Node
{
    string str;
    Node *next;
    Node *prev;
    int priority;
};

class List
{
    Node *head;
    Node *tail;
    Node *temp;
public:
    void show();
    void add(int x, string str);
    void delet();
    Node *found(int priority);
    List();
    ~List();
};

.cpp file
#include "List.h"



void List::show()//в этой функции постоянно вылетает исключение
{
	Node *tmp = head;
	while (tmp!=NULL)
	{
		cout << tmp->str<<endl;
		if (tmp->next == NULL)
		{
			break;
		}
		else
		{
			tmp = tmp->next;
		}
	}
}

void List::add(int x, string str2)
{
	Node *temp = new Node;
	temp->priority = x;
	temp->str = str2;
	if (head != NULL)
	{
		temp->prev = tail;
		tail->next = temp;
		tail = temp;
	}
	else
	{
		temp->prev = NULL;
		head = tail = temp;
	}
}

void List::delet()
{
	tail = tail->prev;
}

//Node * List::found(int priority)
//{
//	if (temp->priority == priority)
//		return temp;
//	else
//		return temp = temp->next;
//}

List::List()
{
	head = NULL;
	tail = NULL;
}


List::~List()
{
}
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Обнуляйте temp->next в функции add().
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
27 нояб. 2024, в 13:07
10000 руб./за проект
27 нояб. 2024, в 12:53
70000 руб./за проект
27 нояб. 2024, в 12:50
25000 руб./за проект