Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Qu * s1; // объявлен указатель на очередь глобальный

Читайте также:
  1. g. Если работает на табачном проекте, в первую очередь спрашиваем, курит ли человек
  2. III. Объявление ребенка брачным по его заявлению
  3. N-КАНАЛЬНАЯ СМО С НЕОГРАНИЧЕННОЙ ОЧЕРЕДЬЮ
  4. А — общий вид; б — крышка во стойками для визирования (прорезь, мушка) и указатель отсчетов; в — лимб, стрелка и тормоз, 1 — мушка, 2 — магнитная, стрелка, 3 — тормоз, 4 — прорезь
  5. Алфавитный указатель рецептов
  6. Алфавитный указатель.

//------------------------------------------------------------------------------

void main ()

{

for (int i=1; i<=20; i++)

dop (s1, i);

cout << cth (s1);

cout << ud(s1);

cout << cth (s1);

cht1(s1); // cht2(s1); }

Список

Список – это соединение элементов в порядке убывания или возрастания ключевого признака –одного из элементов структур.

Рассмотрим следующие функции:

1) добавление элемента в список;

2) удаление элемента с заданным значением поискового признака;

3) поиск и вывод заданного элемента;

4) чтение и вывод всех элементов;

5) уничтожение списка путем освобождения ОП

Информация связанного списка – не данные типа int, а некая сложная структура пусть - библиотечная карта книги.

 

вершина хвост

списка списка

data next
data next
data next
data next
s

… 0

data next
data next
data next

                       
     
       
 
     
 
 
   


новый новый новый

элемент

 

ФУНКЦИИ СПИСКА

#include <string.h>

#include<stdio.h>

#include<iostream.h>

#include<conio.h>

int count; // внешняя переменная для нумерации структур в списке

// определение структурного типа:

struct spisoc{

char*name; // название книги

char*author; // имя автора

int year; // год издания

spisoc* next; // указатель на следующую структуру в списке

};

// определение массива структур для дополнения с инициализацией

spisoc stm[]=

{ { "Turbo Pascal-7", "Фаронов В.В.", 1999 },

{ "Turbo C++", "Винер Р.С.", 1991 },

{ "C-C++", "Березин Б.И. ", 1998 } };

spisoc *s; // определение внешнего указателя на вершину списка, он

// по умолчанию инициирован нулем (NULL)

// Функция вывода на экран данных структуры - параметра

void print(spisoc st)

{

//static int count =0;

cout<<"\n"<<++count<<". "<<st.name<<", " <<st.author<<", " <<st.year;

}

// Функция вывода без нумерации

void print1(spisoc st)

{ cout<<st.name<<", " <<st.author<<", " <<st.year;

}

// Функция дополнения структурой, передаваемой как параметр

void dop (spisoc*&s, spisoc*st)

{

spisoc*list = s, // текущий указатель инициируется указателем на

//вершину

*pr=0, // вспомогательный указатель инициируется 0

*stnew=new(spisoc); // выделяется память на новую структуру

// типа spisoc

*stnew=*st; // копируются данные в новую структуру

// Организуем цикл продвижения по списку пока не достигнем или // нулевого указателя или пока не найдем такую структуру в списке, // в которой поле названия должно по алфавиту стоять после поля // названия вводимой структуры

while(list && (strcmp(list->name,st->name)<=0))

{ pr=list; list=list->next;}; // pr присваиваем значение указателя на

// текущую структуры, а текущему

//указателю list присваиваем значение

//указателя на следующую структуру list->next

stnew->next=list; //производим подключение справа: новую

// запись помещаем перед list


Дата добавления: 2015-07-26; просмотров: 119 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Очередь| организуем подключение слева

mybiblioteka.su - 2015-2024 год. (0.011 сек.)