PDA

View Full Version : حرفه ای: linked list array



arbab333
دوشنبه 13 خرداد 1392, 18:21 عصر
سلام.
من یه آرایه ای از لیست پیوندی تعریف کردم و حالا میخام یه عنصر از وسط لیستو حذف کنم. چجوری میشه این کارو کرد؟؟؟؟؟
نمونه ای از کد من این شکلیه.




LinkedList<DataTable>[] clusters = new LinkedList<DataTable>[1000];

clusters[0].AddLast(data table11);



clusters[1].AddLast(data table12);


clusters[2].AddLast(data table13);

clusters[3].AddLast(data table14);


حالا من میخام clusters[2] رو حذف کنم. چجوری میتونم این کارو بکنم؟؟؟؟؟

tooraj_azizi_1035
دوشنبه 13 خرداد 1392, 19:55 عصر
شما آرایه ای از لیست پیوندی تعریف کردید یعنی هر خانه از آرایه شما خودش یک لیست پیوندی است.
حذف clusters[2] به معنی حذف خانه ای از آرایه است!
اگر قصدتان حذف گره ای خاص از یک لیست پیوندی خاص است می تونید از متد Remove استفاده کنید:

clusters[2].Remove(data table13);


احتمالاً اشتباه کار کردید، اگر علامت [] رو از تعریف clusters حذف کنید شاید اوضاع کمی مرتب تر بشه:

LinkedList<DataTable> clusters = new LinkedList<DataTable>();

clusters.AddLast(data table11);


clusters.AddLast(data table12);

clusters.AddLast(data table13);

clusters.AddLast(data table14);

clusters.Remove(data table12);

arbab333
دوشنبه 13 خرداد 1392, 20:01 عصر
شما آرایه ای از لیست پیوندی تعریف کردید یعنی هر خانه از آرایه شما خودش یک لیست پیوندی است.
حذف clusters[2] به معنی حذف خانه ای از آرایه است!
اگر قصدتان حذف گره ای خاص از یک لیست پیوندی خاص است می تونید از متد Remove استفاده کنید:

clusters[2].Remove(data table13);

متاسفانه من دقیقن میخام یه عنصر آرایه رو حذف کنم. هیچ راهی واسه این کار وجود نداره؟؟؟

tooraj_azizi_1035
دوشنبه 13 خرداد 1392, 20:08 عصر
می تونی با List کار کنی. اونم متد Remove داره به همون شکل می تونی استفاده کنی.

تست نکردم:


List<LinkedList<DataTable>> clusters = new List<LinkedList<DataTable>>(1000);


clusters.Add(new LinkedList<DataTable>());


clusters[0].AddLast(data table11);

clusters.Add(new LinkedList<DataTable>());


clusters[1].AddLast(data table12);


clusters.Add(new LinkedList<DataTable>());
clusters[2].AddLast(data table13);

clusters.Add(new LinkedList<DataTable>());
clusters[3].AddLast(data table14);

clusters.Remove( clusters[2]);

arbab333
سه شنبه 14 خرداد 1392, 11:19 صبح
می تونی با List کار کنی. اونم متد Remove داره به همون شکل می تونی استفاده کنی.

تست نکردم:


List<LinkedList<DataTable>> clusters = new List<LinkedList<DataTable>>(1000);


clusters.Add(new LinkedList<DataTable>());


clusters[0].AddLast(data table11);

clusters.Add(new LinkedList<DataTable>());


clusters[1].AddLast(data table12);


clusters.Add(new LinkedList<DataTable>());
clusters[2].AddLast(data table13);

clusters.Add(new LinkedList<DataTable>());
clusters[3].AddLast(data table14);

clusters.Remove( clusters[2]);


خیلییییی ممنون عزیز.مشکلم با این روش حل شد. واقعن ازتون ممنونم.