الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[تنبيه - عنوان غير مناسب : ]linked list error,i'm getting the memory address instead of the actual value

بدأه memorex في 23 نوفمبر 2011 · 4 رد · 353 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مساعد في كتابة برنامج القوائم المترابطة Linked List.

عندي خطأ في عرض القائمه بعد ما ادخل رقم في نهاية القائمه.

مع جزيل الشكر


#include <iostream>
#include <conio.h>
using namespace std;
struct my_list
{
int num;
struct my_list *next;
struct my_list *previos;

};
typedef struct my_list node;
void createlist(node *p)
{

int data;
node *first,*temp;
first = p;
for( ; ; )
{
cout<<"Enter Number: ";
cin>>data;
if(data == 0)
{

p->next = NULL;
break;
}
else
{
p->num = data;
if(first == p)
{
p->previos = NULL;
}
else
{
p->previos = temp;
}
p->next = new node;

temp = p;
p = p->next;
}
}
}

void display(node *p)
{
while(p->next != NULL)
{
cout<<p->num<<endl;
p = p->next;
}
}

int countlist(node *p)
{
int count = 0;
while(p->next !=NULL)
{
count++;
p = p->next;
}
return count;
}

void insertatend(node *p)
{
node *temp2;

node *temp = new node;
cout<<"\nEnter number at end: ";
cin>> temp->num;
temp->next = NULL;
if (p ==NULL)
{

p = temp;

}

else
{
temp2=p;
while(temp2->next !=NULL)
temp2 = temp2->next;
temp2->next = temp;

}


}


void sort(node *p)
{
node *p1,*p2;
int i,j,temp,n;
n = countlist(p);
for(i = 1; i<n; i++)
{
p1 = p;
p2 = p->next;

for(j = 1; j<=(n-i); j++)
{
if(p1->num > p2->num)
{
temp = p2->num;
p2->num = p1->num;
p1->num = temp;
}

p1 = p1->next;
p2 = p2->next;
}
}
}

void main()
{
node *mynodes = new node;
cout<<"\nCreate list:\n";
createlist(mynodes);

cout<<"\nDisplay the list:\n";
display(mynodes);

cout<<"\n\nInsert new:\n";
insertatend(mynodes);

cout<<"\nDisplay all after insert:\n";
display(mynodes);

cout<<"\nSort list:\n";
sort(mynodes);

cout<<"\nDisplay after sort :\n";
display(mynodes);

getch();

}

تم تعديل هذه المشاركة بواسطة memorex في 24 نوفمبر 2011 في 05:59

#2

هذا ليس حلا ولكنة مجرد تنسيق الكود

#include <iostream>
#include <conio.h>
using namespace std;
struct my_list
{
    int num;
    struct my_list *next;
    struct my_list *previos;

};
typedef struct my_list node;
void createlist(node *p)
{

    int data;
    node *first,*temp;
    first = p;
    for( ; ; )
    {
        cout<<"Enter Number: ";
        cin>>data;
        if(data == 0)
        {

            p->next = NULL;
            break;
        }
        else
        {
            p->num = data;
            if(first == p)
            {
                p->previos = NULL;
            }
            else
            {
                p->previos = temp;
            }
            p->next = new node;

            temp = p;
            p = p->next;
        }
    }
}

void display(node *p)
{
    while(p->next != NULL)
    {
        cout<<p->num<<endl;
        p = p->next;
    }
}

int countlist(node *p)
{
    int count = 0;
    while(p->next !=NULL)
    {
        count++;
        p = p->next;
    }
    return count;
}

void insertatend(node *p)
{
    node *temp2;

    node *temp = new node;
    cout<<"\nEnter number at end: ";
    cin>> temp->num;
    temp->next = NULL;
    if (p ==NULL)
    {

        p = temp;

    }

    else
    {
        temp2=p;
        while(temp2->next !=NULL)
            temp2 = temp2->next;
        temp2->next = temp;

    }


}


void sort(node *p)
{
    node *p1,*p2;
    int i,j,temp,n;
    n = countlist(p);
    for(i = 1; i<n; i++)
    {
        p1 = p;
        p2 = p->next;

        for(j = 1; j<=(n-i); j++)
        {
            if(p1->num > p2->num)
            {
                temp = p2->num;
                p2->num = p1->num;
                p1->num = temp;
            }

            p1 = p1->next;
            p2 = p2->next;
        }
    }
}

void main()
{
    node *mynodes = new node;
    cout<<"\nCreate list:\n";
    createlist(mynodes);

    cout<<"\nDisplay the list:\n";
    display(mynodes);

    cout<<"\n\nInsert new:\n";
    insertatend(mynodes);

    cout<<"\nDisplay all after insert:\n";
    display(mynodes);

    cout<<"\nSort list:\n";
    sort(mynodes);

    cout<<"\nDisplay after sort :\n";
    display(mynodes);


    getch();
}

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#3

Gives normal looking output with me!

Create list:
Enter Number: 4
Enter Number: 9
Enter Number: 0
Display the list:
4
9
Insert new:
Enter number at end: 2
Display all after insert:
4
9
0
Sort list:
Display after sort :
0
4
9
RUN SUCCESSFUL (total time: 11s)
#4

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

.:: Wish to become better and better ::.

#5
Blueteeth كتب:

Gives normal looking output with me!

Create list:

Enter Number: 4

Enter Number: 9

Enter Number: 0

Display the list:

4

9

Insert new:

Enter number at end: 2

Display all after insert:

4

9

0

Sort list:

Display after sort :

0

4

9

RUN SUCCESSFUL (total time: 11s)

I'm sorry it should output

4

9

2

مواضيع مشابهة