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

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

.txt
Скачиваний:
3
Добавлен:
07.06.2018
Размер:
1.52 Кб
Скачать
#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");
}