home *** CD-ROM | disk | FTP | other *** search
- #include "xclass.ch"
-
- FUNCTION Main()
- LOCAL o
- o := NodList( 1 )
- o:Insert( 5 )
- o:Insert( 4 )
- o:Insert( 3 )
- o := o:Insert( 2 )
- Ver( o )
- o := o:GoTop()
- o:sig:sig:Delete()
- Ver( o )
-
- PROCEDURE Ver( o )
- while .t.
- qout( o:Valor )
- if ( o:Sig == NIL )
- exit
- else
- o := o:Sig
- endif
- end
-
- CLASS NodList //Clase nodo de lista
- VAR Valor
- VAR Sig, Ant
- MESSAGE Insert METHOD NLTInsert( x )
- MESSAGE Delete METHOD NLTDelete()
- MESSAGE GoTop METHOD NLTGoTop()
- CONSTRUCTOR New METHOD NLTNew( x )
- END CLASS
-
- METHOD NLTNew( x )
- ::Valor := x
- RETURN Self
-
- METHOD NLTInsert( x )
- LOCAL OldSig := ::Sig
- ::Sig := NewObject( ::ClassH ) //Si hacemos ::Sig := Lista( x ) no sirve
- ::Sig:Valor := x //para heredar
- ::Sig:Ant := Self
- if( OldSig != NIL )
- ::Sig:Sig := OldSig
- OldSig:Ant := ::Sig
- endif
- RETURN ::Sig
-
- METHOD NLTDelete()
- if ! ( ::Sig == NIL )
- ::Sig:Ant := ::Ant
- endif
- if ! ( ::Ant == NIL )
- ::Ant:Sig := ::Sig
- endif
- RETURN Self
-
- METHOD NLTGoTop()
- LOCAL o := Self
- while o:Ant != NIL
- o := o:Ant
- end
- RETURN o
-