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

lab5!

.txt
Скачиваний:
7
Добавлен:
15.06.2014
Размер:
1.31 Кб
Скачать
#include <stdio.h>

struct Node {			
	int d; // Data
	Node *next; //Next node
	Node *prev; //Prev node
};

//--------------------------------------------
Node * first(int d);
void add_sort(Node **pbeg, Node **pend, int d);
void print_list(Node **pbeg);
//--------------------------------------------

int main() {
	Node *pbeg = first(1);
	Node *pend = pbeg;
	int a[3];
	//for (int i = 2; i<40; i += 5) add_sort(&pbeg, &pend, i);
	//for (int j = 1; j<19; j += 2) add(&pbeg, &pend, j);
	add_sort(&pbeg, &pend, 5);
	add_sort(&pbeg, &pend, 3);
	add_sort(&pbeg, &pend, 66);
	print_list(&pbeg);
	
	getchar();
}

Node * first(int d) {
	Node *pv = new Node;
	pv->d = d; pv->next = 0; pv->prev = 0;
	return pv;
}

void add_sort(Node **pbeg, Node **pend, int d) {
	Node *pv = new Node;
	pv->d = d;
	Node * pt = *pbeg;
	while (pt) {
		if (d > pt->d) {
			pv->next = pt;
			if (pt == *pbeg) {
				pv->prev = 0;
				*pbeg = pv;
			}
			else {
				(pt->prev)->next = pv;
				pv->prev = pt->prev;
			}
			pt->prev = pv;
			return;
		}
		pt = pt->next;
	}
	pv->next = 0;
	pv->prev = *pend;
	(*pend)->next = pv;
	*pend = pv;
}


void print_list(Node **pbeg) {
	Node *pv = *pbeg;
	printf("List:\n\n");
	while (pv) {
		printf("%d\t", pv->d);
		pv = pv->next;
	}
}
Соседние файлы в предмете Технология программирования