PDA

View Full Version : سوال: چگونگی وارد کردن داده در لیست پیوندی دو طرفه



alishahbazi
شنبه 18 خرداد 1387, 11:08 صبح
سلام
من یک دارم به شرح زیر و یک نمونه سورس هم نیاز دارم (در صورت امکان)
چگونه میتوان تعدادی اطلاعات را درون لیست پیوندی دو طرفه ذخیره کرد ؟؟؟
بعنوان مثال من میخواهم :
نام دانشجو ، فامیلی ، کد رشته را در یک لیست پیوندی 2 طرفه ذخیره کنم ؟؟؟

ممنون میشم اگه راهنمائیم کنید.

MOHSEN8000
شنبه 18 خرداد 1387, 11:55 صبح
چگونه میتوان تعدادی اطلاعات را درون لیست پیوندی دو طرفه ذخیره کرد ؟؟؟
.

لیست پیوندی دو طرفه شامل دو اشاره گر است که یکی به عنصر قبلی و دیگری به عنصر بعدی در لیست اشاره دارد. برای اضافه کردن به لیست باید مثلا لیست رو پیمایش کنی تا جایی که دیگه اشاره گر به عنصر بعدی خالی باشه ( یعنی عنصر بعدی وجود نداره و این عنصر آخرین عنصر است) و شی رو که می خواهی اضافه کنی به این اشاره گر انتساب بدی.

MOHSEN8000
شنبه 18 خرداد 1387, 12:01 عصر
لیست پیوندی دو طرفه رو هم اگه SEARCH کنی راحت پیدا می شه. من خودم یه لیست آماده دارم که به دردت نمی خوره ولی تابع هاشو می ذارم این جا. شاید به دردت بخوره.




struct node{
int number;
node *next,*last;
node(){
next=0;
last=0;
}
};


void add(node *a,int x){
node *temp,*v;
temp=a;
while ((*temp).next!=0){
temp=(*temp).next;
}
v=new node;
(*v).number=x;
(*temp).next=v;
(*v).last=temp;
}

node* search(node *a,int x){
node *temp;
temp=a;
while ((*temp).next!=0){
if((*temp).number==x){
break;
}
temp=(*temp).next;
}

if ((*temp).next==0){
cout<<"not neighbour"<<endl;
}
else
cout<<"are neighbour"<<endl;
return temp;
}

void delet(node *a,int x){
node *temp,*b;
temp=search(a,x);
if ((*temp).next!=0) {
b=temp;
(*((*b).last)).next=(*temp).next;
(*((*b).next)).last=(*temp).last;
cout<<(*b).number<< " DELETED"<<endl;
}
else if((*temp).last==0)
cout<<"EMPTY"<<endl;
else {
(*((*temp).last)).next=0;
(*temp).last=0;
cout<<(*temp).number<< " DELETED"<<endl;
}
}

alishahbazi
دوشنبه 20 خرداد 1387, 08:16 صبح
از دوستان کسی پیدا نشد یک نمونه کد به ما بده که ، مشکل ما هم حل بشه .
اگر به زبان C ، بیان کنید ، خیلی ممنون میشم.

MOHSEN8000
دوشنبه 20 خرداد 1387, 09:36 صبح
اینو از search پیدا کردم. دیگه فکر کنم به دردت بخوره. با c هم هست که دیگه.
http://stuff.mit.edu/afs/sipb/user/web/lib/c/