Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- ///////////////
- struct Student
- {
- int ege;
- struct Student* NEXT;
- };
- /////////////////////////////////////////
- struct Student* init(int nEge)
- {
- struct Student *p = (struct Student*)malloc(sizeof(struct Student));
- p-> ege = nEge;
- p->NEXT = 0;
- return p;
- }
- //////////////////////////////////////////
- void add(struct Student** h, int nEge)
- {
- struct Student* novy = (struct Student*)malloc(sizeof(struct Student));
- novy->ege = nEge;
- novy->NEXT = *h;
- *h = novy;
- }
- ///////////////////////////////////////////////
- void addend(struct Student **h, int nEge)
- {
- struct Student* novy = (struct Student*)malloc(sizeof(struct Student));
- struct Student* curr = *h;
- while (curr->NEXT != NULL) {
- curr = curr->NEXT;
- }
- novy-> ege = nEge;
- novy->NEXT = NULL;
- curr->NEXT = novy;
- }
- //////////////////////////////////////////////
- int delln(struct Student** h, int m)
- {
- struct Student* novy = (struct Student*)malloc(sizeof(struct Student));
- struct Student* curr = *h;
- if (m == 0) {
- *h = curr->NEXT;
- free(curr) ;
- return 0 ;
- }
- for (int i = 1; i < m; i ++) {
- curr = curr->NEXT;
- }
- novy = curr->NEXT;
- curr->NEXT = novy ->NEXT;
- free(novy) ;
- novy = curr->NEXT;
- }
- //////////////////////////////////////////////////
- int addn(struct Student **h, int m, int nege)
- {
- struct Student *novy = *h;
- struct Student *nov = (struct Student*)malloc(sizeof(struct Student));
- struct Student *curr = *h;
- if(m == 0)
- {
- add(h, nege);
- return 0 ;
- }
- for(int i = 1; i < m; i ++)
- {
- if(curr->NEXT == NULL)
- {
- addend(h, nege);
- return 0;
- }
- curr = curr->NEXT;
- }
- novy = curr->NEXT;
- nov -> ege = nege;
- curr->NEXT = nov;
- nov ->NEXT = novy;
- }
- /////////////////////////////////////////
- void show(struct Student *h)
- {
- struct Student* p = h;
- while(p)
- {
- printf("%d ", p->ege);
- p = p->NEXT;
- }
- }
- /////////////////////////////////////////////
- void ja_svoboden(struct Student *h)
- {
- struct Student *p = h;
- while(p)
- {
- p = p->NEXT;
- free(h);
- h = p;
- }
- }
- /////////////////////////////////////////////
- int main() //
- {
- struct Student *head;
- int n, m, nege;
- scanf("%d", &n); // Кол-во элементов в списко
- if(n == 0)
- {
- scanf("%d%d", &m, &nege);
- head = init(nege);
- show( head);
- return 0;
- }
- scanf("%d", &m);
- head = init( m);
- for(int i = 1; i < n; i++)
- {
- scanf("%d" , &m);
- addend(&head, m);
- }
- scanf("%d%d", &m, &nege);
- addn(&head, m, nege);
- show(head);
- ja_svoboden(head);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment