اذهب إلى المحتوى

السؤال

نشر

السلام عليكم 

لدي اسئلة حول كيف يمكننا التعامل مع الliked list في هياكل البيانات لقد وجد صعوبه في فهم هذا النوع من البيانات فارجوا اذا كان احد من متقن هذا الموضوع ان يجب على الاسئلتي 

*كيف يمكننا الوصول الى الخلية اوNode التي في وسط السلسلة هل يوجد طريقة لهذا وايضا كيف يمكننا ان نزيد او نحذف من السلسلة او بنحث عن قيمه معينة.

*لدي سوال اخر اذا كانت هذه الخلية اوNode لديها قيمتين بداخلها كيف يمكننا ان نجلبهن كل واحده بشكل منفصل 

}class point

private int y

{private int x

مثال اذا كان لدينا Node وهذه الNode نوعها Point وفيها قيمه x,y كيف يمكننا ان نجلبهن كل واحد بشكل منفصل او مثلا ان ننقصهن من بعض مثلا 

اتمنى اذا احد فهمه اسئلة ان يفيدني بمعرفته وسوف ان مشكوره

رمضان كريم

Recommended Posts

  • 0
نشر

للوصول إلى ال Node أو الخلية التي في وسط السلسلة :

List list = new LinkedList();//التصريح عن سلسلة

for (int i = 0; i < 50; i++) {
    list.add(String.valueOf(i));//إضافة 50 عنصر للسلسلة
}

int end = list.size() - 1;//تحديد فهرس آخر عنصر من السلسلة
int start = 0;// تحديد فهرس أول عنصر من السلسلة

while (start < end) {//خوارزمية بسيطة للوصول إلى العنصر الواقع في وسط السلسلة
    start++;
    end--;
}
if(start == end) //يتحقق هذا الشرط فقط إذا كان عدد عناصر السلسلة فردي
    return start; // الحصول على فهرس العنصر الواقع في وسط السلسلة
else //عدد عناصر السلسلة هو عدد زوجي ولا يوجد عنصر واقع في وسطها

لإضافة عناصر إلى السلسلة ، المثال التالي يوضح ذلك:

LinkedList<String> list=new LinkedList<String>();
//إضافة عناصر إلى السلسلة
list.add("Steve");
list.add("Carl");
list.add("Raj");

لحذف عنصر من السلسلة ، إليكِ المثال التالي:

//حذف أول عنصر من السلسلة
list.removeFirst();//أو list.remove(0);
//حذف آخر عنصر من السلسلة
list.removeLast();
//حذف ثاني عنصر من السلسلة ، لاحظ بأن الفهرس يبدأ من الصفر
list.remove(1);

للبحث عن عنصر معين في السلسلة ، إليكِ المثال التالي الذي يوضح ذلك بالتفصيل:

import java.util.LinkedList;
public class SearchInLinkedList {
 
  public static void main(String[] args) {
 
     // إنشاء سلسلة
     LinkedList<String> linkedlist = new LinkedList<String>();
 
     // إضافة عناصر إلى السلسلة
     linkedlist.add("Tim");
     linkedlist.add("Rock");
     linkedlist.add("Hulk");
     linkedlist.add("Rock");
     linkedlist.add("James");
     linkedlist.add("Rock");
 
     //العثور على أول تكرار للعنصر في السلسلة
     int firstIndex = linkedlist.indexOf("Rock");
     System.out.println("First Occurrence: " + firstIndex);
 
     //العثور على آخر تكرار للعنصر في السلسلة 
     int lastIndex = linkedlist.lastIndexOf("Rock");
     System.out.println("Last Occurrence: " + lastIndex);
  }
}

بالنسبة لآخر سؤال قمتِ بطرحه ، من أجل أن نحصل على قيم الخلية (كل منها على حدا) ، اعلمي بأن كل Node أو خلية هي في الحقيقة Object وأن ال Object له attributes أو خصائص بالتالي الخلية التي هي الكائن Point لها اثنتان من الخصائص هما x و y ولكي نحصل على قيمة كل منهما على حدا ، نقوم بتعريف كائن من الكلاس Point ونحصل على قيم الخصائص منه مباشرة أي : 

Point p = new Point();
System.out.print(p.x);//print x value
System.out.print(p.y);//print y value


 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...