View Full Version : سوال: عملیات روی لیست پیوندی؟
vB.N3T
دوشنبه 30 آبان 1390, 09:53 صبح
سلام دوستان یه سوال دارم
ما یه لیست پیوندی داریم که یه سری عدد از ورودی میگیره و به ترتیب وردوی نمایش میده
حالا اگه بخواهیم موقع نمایش اعداد به صورت بر عکس نمایش بده بایداز چه روشی استفاده کرد
ایا بدون استفاده از لیست های 2 طرفه امکان داره برنامه رو نوشت ؟
vB.N3T
دوشنبه 30 آبان 1390, 17:07 عصر
دوستان کسی نبود ؟ این کد برنامه که اعداد رو به ترتیب ورودی نمایش میده
#include<iostream.h>
#include<conio.h>
struct node{
int info;
node *next;};
void main(){
clrscr();
node *t,*start=NULL,*p,*q;
int k,a,x;
cout<<"Enter Number :";
cin>>a;
while(a!=0){
t=new node[1];
t->info=a;
if(start==NULL){
start=t;
p=start;}
else{
(*p).next= t;
p= p->next;}
cout<<"Enter a :";
cin>>a;}
p->next=NULL;
//cout<<"x :";
//cin>>x;
p=start ;
k=0;
while(p!=NULL){
//if(p->info==x)
//k++;
cout<<p->info;
p=(*p).next;
p=p->next;}
//if(k==0)
//cout<<"not found ! ";
//else
//cout<<"count = "<<k;
p=start;
while(p!=NULL){
q=p;
p=q->next;
delete q;}
getch();
}
Cancer
دوشنبه 30 آبان 1390, 18:08 عصر
ایا بدون استفاده از لیست های 2 طرفه امکان داره برنامه رو نوشت ؟
سلام
اگه از ليست 2 طرفه استفاده كني چي مي شه مگه؟
نترس استفاده كن مشكلي پيش نمي ياد.
vB.N3T
دوشنبه 30 آبان 1390, 19:12 عصر
خوب بلد نیسم روش پیاده سازیشو ممنون میشم یه کمکی بدی
soorena
دوشنبه 30 آبان 1390, 19:17 عصر
سلام
بلی این امکان وجود داره باید از ۳ تا اشارگر استفاده کنی ولى خب مرتبه زمانى همون (O(n ميمونه كه هيچ سودى اين كار نداره.
vB.N3T
دوشنبه 30 آبان 1390, 19:22 عصر
داداش من تا اینجاش علمم میکشید نوشتم از اینجا به بعد رو نمیتونم ممنون میشم کد منو ادیت کنید .. که من هم یاد بگیرم
soorena
دوشنبه 30 آبان 1390, 19:42 عصر
http://stackoverflow.com/questions/1801549/reverse-a-singly-linked-list
vB.N3T
دوشنبه 30 آبان 1390, 19:49 عصر
ممنون از لینک اموزش های زیادی دیدم ولی بازم نشد شما اگه ممکنه براتون یه کمی اینو ادیت کنید ممنون
soorena
سه شنبه 01 آذر 1390, 16:01 عصر
فرض کن ليستت رو از ورودی گرفتی و حالا ميخوای چاپش کنی البته به صورت معکوس اشارگر start هم به ابتدای ليست اشاره ميکنه داريم :
void print_reverse_list(node start)
{
if (start !=NULL)
{
print_reverse_list(start->link); //recursive
cout<<start->info; //output info of node
}
}
ديگه از اين واضح تر نميتونم بگم برات
vB.N3T
چهارشنبه 02 آذر 1390, 19:20 عصر
خوب این برنامه 1 پارچه هست نمیشه او voide استفاده کرد؟؟؟میشه ؟؟؟ میشه شما بزارید کامپایل کنید
vB.N3T
پنج شنبه 03 آذر 1390, 01:36 صبح
اوکی
تو برنامه من
struct node{
int info;
node *next;};
شما گفتی
print_reverse_list(start->link);
منظورتون
print_reverse_list(start->next);
هست؟
soorena
پنج شنبه 03 آذر 1390, 14:31 عصر
آره ديگه پسر جان اينا ديگه جزئيات کار هستش . مهم همون الگوريتم بود که برات به زبون c دادم.
vB.N3T
پنج شنبه 03 آذر 1390, 20:39 عصر
من با سی پلاس نوشتم
همین کد های که دادی اما باز اجرا نمیشه...چرا شما یکی تون تست نمیکنید الان 1 هفته هست هنوز جوتب نگرفتم
soorena
جمعه 04 آذر 1390, 11:24 صبح
ببخشين که يه هفتست جواب نگرفتی تقصير منه واقعاً شرمندم ميخوای يکی بيا بزن تو گوشم.
ميخوای کله تکليفتو من برات انجام بدم؟؟؟
مگه طلب کاری اينجوری صحبت ميکنی؟؟؟
...
vB.N3T
جمعه 04 آذر 1390, 18:22 عصر
عزیزم چرا بر میخوره بهت .. خوب تا انجایی که تونسم نوشتم ببیخیال ممنون تا همین جا کمک کردی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.