<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem lista_dwukierunkowa</title>
<link>https://forum.pasja-informatyki.pl/tag/lista_dwukierunkowa</link>
<description>Powered by Question2Answer</description>
<item>
<title>Błąd przy wypisywaniu | lista dwukierunkowa</title>
<link>https://forum.pasja-informatyki.pl/433508/blad-przy-wypisywaniu-lista-dwukierunkowa</link>
<description>

&lt;p&gt;Witam,
&lt;br&gt;
Przy wypisywaniu elementów z listy dwukierunkowej program psuje się zawsze przy wypisywaniu ostatniego elementu tzn. wypisuje wszystkie elementy z listy, a gdy ma wypisać ostatni element wyrzuca błąd.
&lt;br&gt;
Podejrzewam, że gdzieś źle ustawiam wskaźnik na następny element, ale nie wiem gdzie. Wrzucam kod, proszę&amp;nbsp; o przeglądnięcie i pomoc&amp;nbsp;
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
using namespace std;
struct element {
    int date;
    element* next;
    element* previous;
};
struct lista {
    element* head;
    element* tail;
    int liczba_el = 0;
};
void add_last(lista&amp;amp; l);
void add_first(lista&amp;amp; l);
void show_list(lista l);
int main()
{
    lista l;

    add_first(l);
    add_last(l);
    add_first(l);
    add_first(l);

    show_list(l);

    return 0;
}
void add_last(lista&amp;amp; l)
{

    int a;
    element* nowy = new element;
    cout &amp;lt;&amp;lt; &quot;Podaj wartosc do dodania  na koniec\n&quot;;
    cin &amp;gt;&amp;gt; a;
    nowy-&amp;gt;date = a;
    nowy-&amp;gt;next = nullptr;
    nowy-&amp;gt;previous = nullptr;
    if (l.tail != nullptr) {
        l.tail-&amp;gt;next = nowy;
        nowy-&amp;gt;previous = l.tail;
    }
    l.tail = nowy;
    if (l.head == nullptr) {
        l.head = nowy;
    }
    l.liczba_el = l.liczba_el + 1;
}
void add_first(lista&amp;amp; l)
{

    int a;
    element* nowy = new element;
    cout &amp;lt;&amp;lt; &quot;Podaj liczbe do dodania na poczatek\n&quot;;
    cin &amp;gt;&amp;gt; a;
    nowy-&amp;gt;date = a;
    nowy-&amp;gt;next = nullptr;
    nowy-&amp;gt;previous = nullptr;
    if (l.head != nullptr) {

        l.head-&amp;gt;previous = nowy;
        nowy-&amp;gt;next = l.head;
    }
    l.head = nowy;
    if (l.tail == nullptr) {
        l.tail = nowy;
    }
    l.liczba_el = l.liczba_el + 1;
}
void show_list(lista l)
{
    element* temp = l.head;

    for (int i = 1; i &amp;lt;= l.liczba_el; i++) {
        cout &amp;lt;&amp;lt; &quot;Liczba nr to &quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot; &quot;;
        cout &amp;lt;&amp;lt; temp-&amp;gt;date &amp;lt;&amp;lt; endl;
        temp = temp-&amp;gt;next;
    }
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/433508/blad-przy-wypisywaniu-lista-dwukierunkowa</guid>
<pubDate>Tue, 04 Jun 2019 17:21:24 +0000</pubDate>
</item>
</channel>
</rss>