Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Напишите программу создания линейного самоадресуемого списка из 10-и элементов.
- В поле данных каждого элемента списка – порядковый номер этого элемента.
- Вывод значений элементов списка выполните после построения списка. //изменено
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- struct Node
- {
- int num;
- Node *next;
- };
- Node *add_to_list(Node *lnode, int num) //добавление в список
- {
- Node *newel = new Node, *l = lnode;
- newel->num = num;
- newel->next = NULL;
- if(!lnode)
- return newel;
- while(l->next)
- l = l->next;
- l->next = newel;
- return lnode;
- }
- void del_list(Node *lnode) //удаление списка
- {
- Node *p_s = lnode;
- Node *p_tmp = p_s;
- while(p_s)
- {
- p_s = p_s->next;
- delete p_tmp;
- p_tmp = p_s;
- }
- }
- char* list_to_str(Node *l) //перевод из списка в строку
- {
- char buf[256];
- char *str = new char[256];
- str[0] = '\0';
- for(; l; l = l->next)
- {
- itoa(l->num, buf, 10);
- str = strcat(str, strcat(buf, " "));
- }
- return str;
- }
- int main()
- {
- int n, buff;
- Node *lnode = NULL;
- srand(time(0));
- printf("N: ");
- scanf("%d", &n);
- for ( int i=0; i<n; ++i)
- {
- buff=rand()%100;
- lnode=add_to_list(lnode, buff);
- }
- printf("List: %s \n", list_to_str(lnode));
- del_list(lnode);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement