Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- using namespace std;
- struct elem{
- int val; //wartosc elementu listy
- elem *next; //wskaznik na nastepny element listy
- };
- void elem_add(struct elem *lista,int num){
- while(lista->next!=NULL)
- if(num>lista->next->val) lista=lista->next;
- else break; //Po tej petli lista zawiera element za ktorym
- struct elem *add=new struct elem; //trzeba dodoac nowy element
- struct elem *tmp=lista->next;
- lista->next=add;
- add->next=tmp; //Zabawa w przestawianie adresow
- add->val=num;
- return;
- }
- void elem_erase(struct elem *lista,int num){ //Lepiej podac wlasciwy num (0 ; n-1). else Acces violation murowany :)
- for(int i=0;i<num;i++) lista=lista->next; //Petla znajduje element,
- struct elem *tmp; //poprzedzajacy ten, ktory bedzie usuniety
- tmp=lista->next->next;
- delete lista->next; //Zabawa w przestawianie adresow
- lista->next=tmp;
- return;
- }
- struct elem *lista_init(int n){
- struct elem *first;
- first=new struct elem;
- first->val=n;
- first->next=NULL;
- return first;
- }
- void list_delete(struct elem *lista){
- lista=lista->next;
- struct elem *tmp;
- while(lista){
- tmp=lista->next;
- lista=lista->next;
- }
- }
- int main(){
- struct elem *first=lista_init(-1); //Element first mozna poznac ze ma wartosc -1, nie jest czescia wlasciwa listy, ale jest potrzebny
- elem_add(first,2); //Inicjacja jakiejs listy
- elem_add(first,6);
- elem_add(first,3);
- elem_add(first,7);
- elem_add(first,4);
- elem_add(first,9);
- elem_add(first,10);
- elem_erase(first,6); //Element 10 powinien zniknac???
- elem_add(first,1); //Tak wyglada petla ktora przeglada wszystkie elementy listy
- for(struct elem *lista=first->next; lista!=NULL; lista=lista->next) cout<<lista->val<<endl;
- list_delete(first);
- getche();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement