۰
subtitle
ارسال: #۱
  
لیست پیوندی
با سلام : دوستان مشکلی در قسمت مبحث لیست پیوندی درس ساختمان داده برام پیش اومده و اون اینه که تمامی الگوریتم های مربوط به لیست پیوندی از جمله add, delete,... را به طور کامل متوجه می شوم و از روی شکل می فهمم که چه اتفاقی می افتد ولی در برنامه نویسی
وقتی می خوام به جای آرایه از لیست پیوندی استفاده کنم اصلا نمی دونم چیکار کنم . مثلا می خواهیم ۳ عدد از کاربر دریافت و بر روی آن ها عملیاتی را انجام دهیم :
اگر بخواهیم از آرایه استفاده کنیم کد مربوطه در ++c به صورت بالا خواهد بود ولی اگر بخواهیم از لیست پیوندی استفاده کنیم چه کدی را بایستی بنویسیم؟(هدف کلی: گرفتن n عدد از کاربر و ذخیره آن ها در حافظه و بعد انجام عملیات مورد نظر)
وقتی می خوام به جای آرایه از لیست پیوندی استفاده کنم اصلا نمی دونم چیکار کنم . مثلا می خواهیم ۳ عدد از کاربر دریافت و بر روی آن ها عملیاتی را انجام دهیم :
اگر بخواهیم از آرایه استفاده کنیم کد مربوطه در ++c به صورت بالا خواهد بود ولی اگر بخواهیم از لیست پیوندی استفاده کنیم چه کدی را بایستی بنویسیم؟(هدف کلی: گرفتن n عدد از کاربر و ذخیره آن ها در حافظه و بعد انجام عملیات مورد نظر)
۰
ارسال: #۲
  
RE: لیست پیوندی
سلام
خوب این یکم با آرایه فرق داره.در آرایه ما فقط به مکانی برای دخیره سازی نیاز داشتیم و چیز دیگه ای نیاز نداشتیم.
اما تو اینجا حداقل چیزی که لازم داریم یک مکان برای دخیره سازی و یک پونتر برای نگه داری آدرس گره بعده.
پس باید به آبجکت بسازیم. که این کارو با کلاس یا استراکچرها انجام می دیم .
گره ی ما باید حداقل ۲ تا ویژگی که در بالا اشاره شد رو داشته باشه
بعد این کار شما باید نوع لیستو مشخص کنید مثلا هددار-چرخشی-دوطرفه....
ما فرض می کنیم لیست هددار باشه پس یک هد می سازیم (در غیر اینصورت اطلاعات بیشتری به تعریف گره باید اضافه کرد)
حالا که آبجکت گره رو داریم کافیه هر بار که اطلاعاتو از کاربر می گیری یک گره در ابتدای لیست بسازی و مقدارو داخلش بریزی
به این صورت
فکر نکنم توی کد نویسیش مشکلی داشته باشی
اما باز من کداضافه کردن گره رو میذارم
الان یک لیست داریم که برای نمایشش می تونیم یک تابع بنویسیم با این فراخوانی
و با این پیاده سازی
منبع:
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
خوب این یکم با آرایه فرق داره.در آرایه ما فقط به مکانی برای دخیره سازی نیاز داشتیم و چیز دیگه ای نیاز نداشتیم.
اما تو اینجا حداقل چیزی که لازم داریم یک مکان برای دخیره سازی و یک پونتر برای نگه داری آدرس گره بعده.
پس باید به آبجکت بسازیم. که این کارو با کلاس یا استراکچرها انجام می دیم .
گره ی ما باید حداقل ۲ تا ویژگی که در بالا اشاره شد رو داشته باشه
کد:
struct Node {
int data;
Node* next;
};
ما فرض می کنیم لیست هددار باشه پس یک هد می سازیم (در غیر اینصورت اطلاعات بیشتری به تعریف گره باید اضافه کرد)
کد:
struct Node *head = new Node;
کد:
addNode(head,20);
کد:
int i,value;
for (i=0;i<10;i++){
cout<<"number"<<i<<":";
cin>>value;
addNode(head,value);
}
اما باز من کداضافه کردن گره رو میذارم
کد:
void addNode(struct Node *head, int n) {
Node *newNode = new Node;
newNode->data = n;
newNode->next = NULL;
Node *cur = head;
while(cur) {
if(cur->next == NULL) {
cur->next = newNode;
return;
}
cur = cur->next;
}
}
کد:
display(head);
کد:
void display(struct Node *head) {
Node *list = head;
while(list) {
cout << list->data << " ";
list = list->next;
}
cout << endl;
cout << endl;
}
منبع:
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
ارسال: #۳
  
RE: لیست پیوندی
(۱۳ آبان ۱۳۹۲ ۰۷:۱۶ ب.ظ)black_knight نوشته شده توسط: سلامهمانطور که خودم حدس می زدم بایستی با تابع ها سرو کار داشته باشیم.
خوب این یکم با آرایه فرق داره.در آرایه ما فقط به مکانی برای دخیره سازی نیاز داشتیم و چیز دیگه ای نیاز نداشتیم.
اما تو اینجا حداقل چیزی که لازم داریم یک مکان برای دخیره سازی و یک پونتر برای نگه داری آدرس گره بعده.
پس باید به آبجکت بسازیم. که این کارو با کلاس یا استراکچرها انجام می دیم .
گره ی ما باید حداقل ۲ تا ویژگی که در بالا اشاره شد رو داشته باشه
با تشکر از اطلاع رسانی
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close