Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Организанция ОДС

.txt
Скачиваний:
4
Добавлен:
07.06.2018
Размер:
2 Кб
Скачать
#include <iostream>
#include <stdio.h>
using namespace std;
#include <math.h>
#include <string.h>
#include <conio.h>

struct List
{
int data;
List *Next;
}*Head;

void add_head(int a,List **Head)
{
if(!(*Head))
{
(*Head)= new List();
(*Head)->data=a;
(*Head)->Next=NULL;
}
else
{
List *Elem1;
Elem1= new List();
Elem1->data=a;
Elem1->Next=NULL;
Elem1->Next=(*Head);
(*Head)=Elem1;
}
}
void add_last(int a,List **Head)
{
List *Elem1; //1
Elem1= new List();
Elem1->data=a;
Elem1->Next=NULL;
//2
List *Head2=(*Head);
while(Head2->Next!=NULL)
{
Head2=Head2->Next;
}
Head2->Next=Elem1;
}

int get_head(List **Head)
{
int a=(*Head)->data;
(*Head)=(*Head)->Next;
return a;
}

int get_last(List **Head)
{
int a;
List *Head2=(*Head);
while(Head2->Next->Next!=NULL)
{
Head2=Head2->Next;
}
a=Head2->Next->data;
Head2->Next=NULL;
return a;
}


int count_List(List **Head)
{
if(!(*Head)) return 0;
else
{
int i=1;
List *Head2=(*Head);


while(Head2->Next!=NULL)
{
Head2=Head2->Next;
i++;
}
return i;
}
}



void main()
{
cout<<"Count "<<count_List(&Head)<<endl;//0
add_head(1,&Head);
add_head(2,&Head);
add_head(3,&Head);
add_head(4,&Head);
add_last(5,&Head);
cout<<"Count "<<count_List(&Head)<<endl;//5

cout<<get_last(&Head)<<endl; //5
cout<<get_last(&Head)<<endl; //1

cout<<"Count "<<count_List(&Head)<<endl;//3
system("pause");
}