PDA

View Full Version : لیست پیوندی حلقوی در سی شارپ؟نحوه تعریفش



v30sharp
یک شنبه 18 اردیبهشت 1390, 16:27 عصر
یک بار گذاشتم حذفش کردم نمیدونم چه عنوانی رو براش بزارم اخه اسمش همینه اسم دیگه ای نداره سوال من اینه لیست پیوندی حلقوی چطور تعمیشه در سی شارپ اگر عنوانش نادرسته مدیران درستش کنن فقط حذفش نکنید!!:متفکر::گریه:

ali.rezaei7
یک شنبه 18 اردیبهشت 1390, 17:03 عصر
چرا از List استفاده نمی کنید؟

v30sharp
یک شنبه 18 اردیبهشت 1390, 19:05 عصر
ازم خواستن یه برنامه به نویسم که لیست پیوندیش حلقوی باشه یعنی ابتدای لیست همون پایان لیست باشه و برعکس نمیدونم دوستان کمک کنید:گریه:

ali.rezaei7
یک شنبه 18 اردیبهشت 1390, 20:05 عصر
پیاده سازی Circularly linked list در سی شارپ یه چیز کاملا بی معنی هستش. چون ساختار لیست پیوندی در سی شارپ و استفاده از آن با سی یا سی پلاس پلاس متفاوت هست و همچنین امکاناتی که در LinkedList خود دات نت موجود هست، شما از این انجام چنین کارها بی نیاز می کنه.
به هر حال اگه واقعا به Circularlyنیاز دارید. در این صورت باید بصورت دستی خودتون طراحی کنید. برای اینکار باید از روش unsafe دات نت استفاده کنید.

v30sharp
یک شنبه 18 اردیبهشت 1390, 20:41 عصر
میشه بیشتر توضیح بدید؟؟لطفا مثال بزنید ممنون میشم تا حالا ازم چنین چیزی نخواسته بودن

FastCode
یک شنبه 18 اردیبهشت 1390, 21:29 عصر
لازم نیست از unsafe code استفاده کنید.
ساده ترین راهش اینه:
class Node
{
private Node prev, next;
public Node Prev{get{return prev;}private set{prev=value;}}
public Node Next{get{return next;}private set{next=value;}}
public Node()
{
Next=this;
Prev=this;
}
public void InsertFront(Node Node)
{
if(Next != null)
{
Next.Prev=Node;
Node.Next=Next;
}
Node.Prev=this;
Next=Node;
}
}
PushFront/InsertFront رو براتون نوشتم.چون پروژه دانشجوییه بقیش رو خودتون بنویسید.



تا حالا ازم چنین چیزی نخواسته بودن
ناراحت نشید ولی به هدفشون رسیدن.

v30sharp
یک شنبه 18 اردیبهشت 1390, 22:23 عصر
مرسی منظورتونو نفهمیدم از این که به هدفشود رسیدن؟
چی میشد push va pop رو هم مینوشتید صواب داشت به خدا

FastCode
دوشنبه 19 اردیبهشت 1390, 22:37 عصر
public void InsertBack(Node Node)
{
if(Prev != null)
{
Prev.Next=Node;
Node.Prev=Prev;
}
Node.Next=this;
Prev=Node;
}



منظورم از "به هدفشون رسیدن" این بود که میخواستن به شما ثابت بکنند که بلد نیستید.

v30sharp
دوشنبه 19 اردیبهشت 1390, 23:09 عصر
بابت کد مرسی :قلب:
ندانستن عیب نیست ندانستنو نپرسیدن عیب است:متعجب:

FastCode
دوشنبه 19 اردیبهشت 1390, 23:54 عصر
بابت کد مرسی :قلب:
ندانستن عیب نیست ندانستنو نپرسیدن عیب است:متعجب:
تلاش نکردن عیب است دوست عزیز.
همش هشت حالت داشت(نپرسید چطوری حساب کردی/حساب کردم.).اینقدر مینوشتی تا بشه.یکیش میشد دیگه.

v30sharp
سه شنبه 20 اردیبهشت 1390, 09:21 صبح
باور کن درسا اونقدر زیلدن واسه نشستن پشت رایانه وقت ندارم خق با شماست:قلب::خجالت: