Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
21-34_ПР-ИЕ.doc
Скачиваний:
13
Добавлен:
28.08.2019
Размер:
328.19 Кб
Скачать

1. Добавление звена в начало списка

{Процедура добавления звена в начало списка; в x содержится добавляемая информация}

Procedure V_Nachalo(Var First : U; X : BT);

Var Vsp : U;

Begin

New(Vsp);

Vsp^.Inf := X;

Vsp^.Next := First; {То звено, что было заглавным, становится вторым по счёту}

First := Vsp; {Новое звено становится заглавным}

End;

2. Удаление звена из начала списка

{Процедура удаления звена из начала списка;

в x содержится информация из удалённого звена}

Procedure Iz_Nachala(Var First : U; Var X : BT);

Var Vsp : U;

Begin

Vsp := First; {Забираем ссылку на текущее заглавное звено}

First := First^.Next; {То звено, что было вторым по счёту, становится заглавным}

X := Vsp^.Inf; {Забираем информацию из удаляемого звена}

Dispose(Vsp); {Уничтожаем звено}

End;

Строки

В разных языках строки представлены по-разному и стандарт на строковый тип сложился относительно недавно. Когда говорят о строковом типе, то обычно различают тип, представляющий:

  • отдельные символы, чаще всего, его называют типом char;

  • строки постоянной длины, часто они представляются массивом символов;

  • строки переменной длины - это, как правило, тип string, соответствующий современному представлению о строковом типе.

Строки символов можно хранить либо в обычных символьных массивах либо в объектах специальных строковых типов (или классов). В любом случае чаще всего строки реализуются на базе одномерных символьных массивов. Строковые объекты отличаются от просто символьных массивов возможностью применять к ним: операции сравнения, конкатенации (стыковки) и др., для обработки строк существует большой набор процедур и функций (поиск в строках, реализация вставки, удаления, поиска и замены и множество других действий).

Строки С++

В С++ хранение строк организуется в виде C-строк. С-строка – последовательность символов, хранящаяся в символьном массиве char[], оканчивающаяся нулевым символом '\0' (признак конца строки).

Операция над строками Создание строк

Проиллюстрирую создание строк на фрагментах кода с комментариями.

char str1[10]; // Строка - массив из 10 символов. Начальное значение символов не определено.

char str2[10]="Hello";

/* Используется инициализация (не присваивание!). В первые 5 символов записывается “Hello”, в 6 – нуль-терминатор, значение трех последних не определено.*/

char str3[10]={'H', 'e', 'l', 'l', 'o', '\0'}; //Эквивалентно предыдущему.

char str4[10]="Very long line";

//Ошибка. Массив из 10 элементов нельзя инициировать более длинной последовательностью.

char str5[]="Very long line";

/*Компилятор автоматически определяет длину массива (в нашем случае 15) и инициализирует его последовательностью символов. */

char* str6;

/*Строка - указатель на символ. В большинстве случаев для ее использования

потребуется выделить память.*/

str6= new char[10];

delete [] char;