i'd like to get more control like in c with pointers. I want to loose 
the data after disabling:

>>> list=[]
>>> list.append(Node(1))
>>> list.append(Node(2))
>>> list[0].next=list[1]


      1, 2


>>> list.append(Node(3))
>>> list[1].next=list[2]


1,2,3


>>> list[0].next=list[2]

1,3                       (but 2 still exists as list[2])



as much simmilar as this:


#include<stdio.h>
#include<stdlib.h>
typedef int element;
struct Lis
        {
                int values[10000];
                int cursor;
        };
typedef struct Lis list;

int FirstL(list *Li){
                return(0);
        }

int EndL(list *Li){
                return((*Li).cursor);
        }

element NextL(element p, list *Li){
                if ((p>=(*Li).cursor) || (p<0))
                        {
                                printf("Element ne postoji u listi ! \n");
                                exit(0);
                        }
                else
                        return(p+1);
}

element PreviousL(element p, list *Li){
                if ((p>(*Li).cursor) || (p<=0))
                        {
                                printf("Element ne postoji u listi ! \n");
                                exit(0);
                        }
                else
                        return(p-1);
}


element LocateL(int x, list *Li){
                int i;
                i=0;
                while ((i!= (*Li).cursor) && ((*Li).values[i]!=x))
                        i++;
                return(i);
}

void InsertL(int x, element p, list *Li){
                int i;
                if ((p<=(*Li).cursor) && (p>=0)  && ((*Li).cursor<10000))
                        {
                                for (i=(*Li).cursor; i>=p; i--)
                                        (*Li).values[i]=(*Li).values[i-1];
                                (*Li).cursor++;
                                (*Li).values[p]=x;
                        }
                else
                        {
                                if((*Li).cursor>=10000)
                                        printf("Lista je puna");
                                else
                                printf("Element ne postoji u listi ! \n");
                        exit(0);
                        }
        }

void DeleteL(element p, list *Li){
                int i;
                if ((p<(*Li).cursor) && (p>=0))
                        {
                                for (i=p; i<(*Li).cursor; i++)
                                        (*Li).values[i]=(*Li).values[i+1];
                                (*Li).cursor--;
                        }
                else
                        {
                                printf("Element ne postoji u listi ! \n");
                                exit(0);
                        }
        }


int RetrieveL(element p, list *Li){
                if ((p<(*Li).cursor) && (p>=0))
                        return((*Li).values[p]);
                else
                        {
                                printf("Element ne postoji u listi ! \n");
                                exit(0);
                        }
        }



void DeleteAllL(list *Li){
                (*Li).cursor=0;
        }


void InitL(list *Li){
                (*Li).cursor=0;
        }


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to