Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "malloc.h"
- #include "conio.h"
- #include <iostream>
- using namespace std;
- typedef struct Node {
- int value;
- struct Node *next;
- } Node;
- void push(Node **head, int data);
- int pop(Node **head);
- void printList(const Node *head);
- int deletenelement(Node **head, int n);
- Node *getnelement(Node *head, int n);
- void MakeListFromMas(Node **head, int *arr, size_t size);
- int main() {
- Node *head = NULL;
- int n;
- cout << "Enter count: ";
- cin >> n;
- int *arr = new int[n];
- cout << "Enter elements:" << endl;
- for (int i=0;i<n;i++) {
- cin >> arr[i];
- }
- int number = NULL;
- MakeListFromMas(&head, arr, n);
- printList(head);
- int size = n;
- for (int i = size-1; i >= 0; i--) {
- if (getnelement(head, i)->value != 0) {
- number = i;
- deletenelement(&head, number);
- //i--;
- size--;
- } else {
- break;
- }
- }
- printList(head);
- getch();
- return 0;
- }
- void push(Node **head, int data) {
- Node *middle = (Node *) malloc(sizeof(Node));
- middle->value = data;
- middle->next = (*head);
- (*head) = middle;
- }
- int pop(Node **head) {
- Node *prev = NULL;
- int val;
- if (head == NULL) {
- printf("Error");
- }
- prev = (*head);
- val = prev->value;
- (*head) = (*head)->next;
- free(prev);
- return val;
- }
- Node *getnelement(Node *head, int n) {
- int counter = 0;
- while (counter < n && head) {
- head = head->next;
- counter++;
- }
- return head;
- }
- int deletenelement(Node **head, int n) {
- if (n == 0) {
- return pop(head);
- } else {
- Node *prev = getnelement(*head, n - 1);
- Node *elm = prev->next;
- int val = elm->value;
- prev->next = elm->next;
- free(elm);
- return val;
- }
- }
- void printList(const Node *head) {
- while (head) {
- printf("%d ", head->value);
- head = head->next;
- }
- printf("\n");
- }
- void MakeListFromMas(Node **head, int *arr, size_t size) {
- size_t i = size - 1;
- if (arr == NULL || size == 0) {
- return;
- }
- do {
- push(head, arr[i]);
- } while (i-- != 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement