Hello everyone...I'm trying to create a journey planner for an underground system...but the first thing Is to create the skeleton of the underground system... my problem is I don't know how to add more links to a single node when the station has an intersection with other lines...
public class LinkedList {
public LinkedList( ) {
header = new ListNode( null );
}
public boolean isEmpty( ) {
return header.next == null;
}
public void makeEmpty( ) {
header.next = null;
}
public LinkedListIterator zeroth( ) {
return new LinkedListIterator( header );
}
public LinkedListIterator first( ) {
return new LinkedListIterator( header.next );
}
public void insert( Object x, LinkedListIterator p ) {
if( p != null && p.current != null )
p.current.next = new ListNode( x, p.current.next );
}
public LinkedListIterator find( Object x ) {
ListNode itr = header.next;
while( itr != null && !itr.element.equals( x ) )
itr = itr.next;
return new LinkedListIterator( itr );
}
public LinkedListIterator findPrevious( Object x ) {
ListNode itr = header;
while( itr.next != null && !itr.next.element.equals( x ) )
itr = itr.next;
return new LinkedListIterator( itr );
}
public static void printList( LinkedList theList ) {
if( theList.isEmpty( ) )
System.out.print( "Empty list" );
else {
LinkedListIterator itr = theList.first( );
for( ; itr.isValid( ); itr.advance( ) )
System.out.print( itr.retrieve( ) + ", " );
}
System.out.println( );
}
private ListNode header;
public static int listSize( LinkedList theList ) {
LinkedListIterator itr;
int size = 0;
for( itr = theList.first(); itr.isValid(); itr.advance() )
size++;
return size;
}
public static void main( String [ ] args ) {
String stationListA[]= {"Dejvicka","Hradkanska","Malostranska"
,"Staromestaska","Mustek","Muzeum","Namesti Miru","Jiriho Z Podebrad"
, "Flora","Zelivskeho", "Strasnicka","Skalka","Depo Hostivar"};
String stationListB[] = {"Zličín","Stodůlky","Luka","Lužiny","Hůrka"
,"Nové Butovice","Jinonice","Radlická "
,"Smíchovské Nádraží","Anděl"," Karlovo náměstí "," Národní Třída "
," Mustek","NR","Florenc","Krizikova","Invalidovna"
,"CM","Vysokanska","Kolbenova","Hloubetin","Rajska Zahrada","Cerny Most"};
String stationListC[]={"Ladvi","Kobylisy","Nadrazi Holesovice"
,"Vltavska","Florenc", "Hlavni Nadrazi","Muzeum","I P Pavlova"
, "Vysehrad","Prazkeho Povstani","Pankrac","Budejovicka","Kacerov"
,"Roztyly","Chodov","Opatov", "Haje"};
LinkedList lineA = new LinkedList( );
LinkedListIterator theItr;
int i;
theItr = lineA.zeroth( );
printList( lineA );
for( i = 0; i < stationListA.length; i++ ) {
lineA.insert( new String ( stationListA[i] ), theItr );
//printList( lineA );
theItr.advance( );
}
LinkedList lineB=new LinkedList();
theItr=lineB.zeroth();
printList(lineB);
for(i=0;i<stationListB.length;i++){
lineB.insert(new String(stationListB[i]), theItr);
theItr.advance();
}
LinkedList lineC=new LinkedList();
theItr=lineC.zeroth();
printList(lineC);
for(i=0;i<stationListC.length;i++){
lineB.insert(new String(stationListC[i]), theItr);
theItr.advance();
}
}
}
public class LinkedListIterator {
LinkedListIterator( ListNode theNode ) {
current = theNode;
}
public boolean isValid( ) {
return current != null;
}
public Object retrieve( ) {
return isValid( ) ? current.element : null;
}
public void advance( ) {
if( isValid( ) )
current = current.next;
}
ListNode current;
}
class ListNode {
public ListNode( Object theElement ) {
this( theElement, null );
}
public ListNode( Object theElement, ListNode n ) {
element = theElement;
next = n;
}
public Object element;
public ListNode next;
}
thanks