Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "Header.h"
- #include <cstdlib>
- struct list * init(int head) // heаd - data of first segment
- {
- struct list *lst; // memory for root of list
- lst = (struct list*)malloc(sizeof(struct list));
- lst->field = head;
- lst->ptr = NULL; // ended segment
- return(lst);
- }
- struct list * addelem(list *lst, int number)
- {
- struct list *temp, *p;
- temp = (struct list*)malloc(sizeof(list));
- p = lst->ptr; // save pointer for next segment
- lst->ptr = temp; // last segment point for new
- temp->field = number; // save data new segment
- temp->ptr = p; // new segment point for next
- return(temp);
- }
- void listprint(list *lst)
- {
- struct list *p;
- p = lst;
- do {
- printf("%d ", p->field); // screen p
- p = p->ptr; // go to next segment
- } while (p != NULL);
- }
- struct list * deletelem(list *lst, list *root)
- {
- struct list *temp;
- temp = root;
- while (temp->ptr != lst) // look list from root, to lst
- {
- temp = temp->ptr;
- }
- temp->ptr = lst->ptr; // take pointer
- free(lst); // delete memory segment
- return(temp);
- }
- struct list * deletehead(list *root)
- {
- struct list *temp;
- temp = root->ptr;
- free(root); // delete memory root
- return(temp); // new root
- }
- void deleteNegative(list *root)
- {
- struct list *p;
- p = root;
- do {
- if (p->field<0)
- {
- p = deletelem(p, root);
- }
- else
- {
- p = p->ptr;
- }
- } while (p != NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement