الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مسااعده للخبرين في استخدام ال Node

بدأه عاشق مريوم في 19 مايو 2009 · 6 رد · 521 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

في عندي مشكله صغيره يا ليت لو القى الحل عندكم ،،

ابي طريقة استخدام الNode في الList على انها Intger وليس String شلون اقدر احولها لاني كل ما حاولت استخدم الmethod يقولي ما يصير تستخدم Integer وهو متعرف String ..

اتمنى سؤالي يكون واضح وفي انتظار ردودكم

#2

بالمثد تاكد انك ترجع string

تاكد من ال method signature

#3

لو ممكن توضح أكثر سيكون أحسن

هل تعني ب Node الكلاس التي توجد في حزمة الDOM ؟؟

وإذا أمكن تعطينا الكود الذي تقوم فيه بالإضافة والذي يعطيك الخطأ

#4

import java.util.*;

public class AList <T> implements ListInterface <T>

{

private Node firstNode; // reference to first node

private int length; // number of entries in list

public AList()

{

clear ();

} // end default constructor

public final void clear ()

{

firstNode = null;

length = 0;

} // end clear

public boolean add (T newEntry)

{

Node newNode = new Node (newEntry);

if ( isEmpty() )

firstNode = newNode;

else // add to end of nonempty list

{

Node lastNode = getNodeAt(length);

lastNode.next = newNode; // make last node reference new node

} // end if

length++;

return true;

} // end add

public boolean add (int newPosition, T newEntry)

{

boolean isSuccessful = true;

if ((newPosition >= 1) && (newPosition <= length + 1))

{

Node newNode = new Node (newEntry);

if (isEmpty () || (newPosition == 1)) // case 1

{

newNode.next = firstNode;

firstNode = newNode;

}

else // case 2: list is not empty

// and newPosition > 1

{

Node nodeBefore = getNodeAt (newPosition - 1);

Node nodeAfter = nodeBefore.next;

newNode.next = nodeAfter;

nodeBefore.next = newNode;

} // end if

length++;

}

else

isSuccessful = false;

return isSuccessful;

} // end add

public void display ()

{

Node currentNode = firstNode;

while (currentNode != null)

{

System.out.println (currentNode.data);

currentNode = currentNode.next;

} // end while

} // end display

public boolean isEmpty ()

{

boolean result;

if (length == 0)

{

assert firstNode == null;

result = true;

}

else

{

assert firstNode != null;

result = false;

} // end if

return result;

} // end isEmpty

public boolean replace (int givenPosition, T newEntry)

{

boolean isSuccessful = true;

if ((givenPosition >= 1) && (givenPosition <= length))

{

assert !isEmpty ();

Node desiredNode = getNodeAt (givenPosition);

desiredNode.data = newEntry;

}

else

isSuccessful = false;

return isSuccessful;

} // end replace

public T getEntry (int givenPosition)

{

T result = null; // result to return

if ((givenPosition >= 1) && (givenPosition <= length))

{

assert !isEmpty ();

result = getNodeAt (givenPosition).data;

} // end if

return result;

} // end getEntry

public T remove (int givenPosition)

{

T result = null; // return value

if ((givenPosition >= 1) && (givenPosition <= length))

{

assert !isEmpty ();

if (givenPosition == 1) // case 1: remove first entry

{

result = firstNode.data; // save entry to be removed

firstNode = firstNode.next;

}

else // case 2: givenPosition > 1

{

Node nodeBefore = getNodeAt (givenPosition - 1);

Node nodeToRemove = nodeBefore.next;

Node nodeAfter = nodeToRemove.next;

nodeBefore.next = nodeAfter; // disconnect the node to be removed

result = nodeToRemove.data; // save entry to be removed

} // end if

length--;

} // end if

return result; // return removed entry, or

// null if operation fails

} // end remove

public boolean isFull () // should ALWAYS return false

{

return false;

}

public int getLength () // should ALWAYS return false

{

return length;

}

public boolean contains (T anEntry)

{

boolean found = false;

Node currentNode = firstNode;

while (!found && (currentNode != null))

{

if (anEntry.equals (currentNode.data))

found = true;

else

currentNode = currentNode.next;

} // end while

return found;

} // end contains

/** Task: Returns a reference to the node at a given position.

* Precondition: List is not empty; 1 <= givenPosition <= length. */

private Node getNodeAt (int givenPosition)

{

assert !isEmpty () &&

(1 <= givenPosition) && (givenPosition <= length);

Node currentNode = firstNode;

// traverse the list to locate the desired node

for (int counter = 1 ; counter < givenPosition ; counter++)

currentNode = currentNode.next;

assert currentNode != null;

return currentNode;

} // end getNodeAt

public static void main (String [] args)

{

ListInterface < String > myList = new AList();

System.out.println ("Add 1: returns " + myList.add ("1"));

System.out.println ("Add 5: returns " + myList.add ("5"));

System.out.println ("Add 9: returns " + myList.add ("9"));

ListInterface < String > myList2 = new AList ();

System.out.println ("Add 2: returns " + myList.add ("2"));

System.out.println ("Add 3: returns " + myList.add ("3"));

System.out.println ("Add 4: returns " + myList.add ("4"));

System.out.println ("Add 6: returns " + myList.add ("6"));

System.out.println ("Add 7: returns " + myList.add ("7"));

System.out.println ("Add 8: returns " + myList.add ("8"));

ListInterface < String > myList3 = new AList ();

int c1,c2 ;

c1 = myList.getEntry() ;

c2 = myList2.getEntry() ;

for (int counter = myList.getLength() ; counter < c2 ; counter++){

if (c1 < c2)

{

myList3.add() = c1;

}

}

} // end main

private class Node // private inner class

{

private T data; // entry in list

private Node next; // link to next node

private Node (T dataPortion)

{

data = dataPortion;

next = null;

} // end constructor

private Node (T dataPortion, Node nextNode)

{

data = dataPortion;

next = nextNode;

} // end constructor

} // end Node

} // end LList

تم تعديل هذه المشاركة بواسطة عاشق مريوم في 19 مايو 2009 في 22:15

#5
Eisa Ayed كتب:
بالمثد تاكد انك ترجع string

تاكد من ال method signature

انا ابي يكون Integer وليس String

حطيت الكود وبالضبط مشكلتي بدت لما كنت بادي اسوي sort ل List و List2 واضعهم في list3

#6

يا أخي هذا طبيعي

<span class="postcolor">ListInterface < String > myList = new AList();</span>

أنت هنا تقول أن myList ستحتوي على عناصر من صنف String، وعندما تقوم بgetEntry فستعيد لك String وليس int

إستعمل Integer بدل String



ListInterface < Integer > myList = new AList();
System.out.println ("Add 1: returns " + myList.add (1));
System.out.println ("Add 5: returns " + myList.add (5));
System.out.println ("Add 9: returns " + myList.add (9));

ListInterface < Integer > myList2 = new AList ();
System.out.println ("Add 2: returns " + myList.add (2));
System.out.println ("Add 3: returns " + myList.add (3));
System.out.println ("Add 4: returns " + myList.add (4));
System.out.println ("Add 6: returns " + myList.add (6));
System.out.println ("Add 7: returns " + myList.add (7));
System.out.println ("Add 8: returns " + myList.add (8));

ListInterface < Integer > myList3 = new AList ();

//.............................
  //............................

تم تعديل هذه المشاركة بواسطة herch في 19 مايو 2009 في 22:35

#7

يعطيك العافيه اخوي سويتها بس شلون اقدر استخدم الmethods عشان اسوي sort لل List ال List2 داخل الList3 ?? مو ضابط معاي

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…