Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
13 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
78.03 kB
Просмотров:
57
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Практическое занятие №1
Подготовка к 1-ой лабораторной работе.
Реализация основных алгоритмов.
№2 слайд
Содержание слайда: Основные термины
1. Информация в таблице представлена множеством узлов (записей, объектов, элементов).
Узел обозначается так:
2. Каждый узел состоит из одного или нескольких последовательных слов в памяти машины, разделенных на именуемые части, называемые полями.
3. Адресом узла является адрес первого слова в узле (связь, указатель, ссылка, стрелка на узел).
Для обозначения пустой связи используется:
№3 слайд
Содержание слайда: Определение линейного списка
Линейный список – это множество, состоящее из n≥0 узлов: x[0], …, x[n-1], структурные свойства которого ограничиваются условиями:
если n≥0, то x[0] является первым
если 0<k<n-1, то k-му узлу предшествует x[k-1] и за ним следует x[k+1].
№4 слайд
Содержание слайда: Организация хранения данных
Для хранения данных целесообразно использовать следующую конструкцию:
struct list {
int inf; //информационная часть
list * next; //ссылка на следующий элемент
};
list * first;
№5 слайд
Содержание слайда: Генерация псевдослучайных чисел
Используется команда rand()
Заголовочный файл <stdlib.h>
Для того, чтобы генератор каждый раз начинал генерацию с нового числа, необходимо подключить заголовочный файл <time.h>
Для получения различных чисел:
srand((unsigned)time(0));
Для генерации целого числа от a до b
int irand(int a, int b)
{ return rand() % (b-a+1)+a; }
Пример: получить псевдослучайное число от -7 до 4
irand(-7, 4)
№6 слайд
Содержание слайда: Создание линейного списка
n=7;
list *first=new list;
list *p=first;
cin>>p->inf ;
for (int i=0; i<n-1; i++) {
p->next=new list ;
p=p->next ;
cin>>p->inf;
}
p->next=0;
№7 слайд
Содержание слайда: Печать линейного списка
p = first;
while (р)
{
cout << p->inf << “ “ ;
р = p->next;
}
cout << endl;
№8 слайд
Содержание слайда: Создание пользовательского интерфейса
int num = 1;
while (num) {
cin >> num;
switch (num) {
case 0: break;
case 1: {
//ввод списка
break; }
case 2: {
//вывод списка
break; }
default: cout << “Error!” << end l;
}
}
№9 слайд
Содержание слайда: Вставка элемента в начало списка
list * q = new list;
cin >> q->inf;
q->next = first;
first = q;
№10 слайд
Содержание слайда: Включение элемента в середину
(после i-го элемента)
p = first;
int k = 2;
for (i=0; i<k; i++)
p = p->next;
list *w=new list;
cin >> w->inf ;
w->next = p->next;
p->next = w;
№11 слайд
Содержание слайда: Удаление элемента из середины (i-го элемента)
k = 2;
p = first;
for (i=0; i<k-1; i++ )
p = p->next;
w = p->next;
p->next = w->next;
delete w;
№12 слайд
Содержание слайда: Создание копии списка
p = first;
list *newlist =new list;
newlist->inf = p->inf;
p = p->next;
list *newfirst = newlist;
while (p) {
newlist->next = newlist;
newlist = newlist->next;
newlist->inf = p->inf;
p = p->next ;
}
newlist->nex t = 0;
№13 слайд
Содержание слайда: Разбиение списка на два по заданному критерию
p = first;
list *chet = newlist;
list *nechet = newlist;
list *p1 = chet;
list *p2 = nechet;
list *w1 = p1;
list *w2 = p2;
while (p) {
if (p->inf % 2) {
p2->inf = p->inf;
p2->next = newlist;
w2 = p2;
p2 = p2->next;
}
else {
p1->inf = p->inf;
p1->next = newlist;
w1 = p1;
p1 = p1->next ;
} ;
p = p->next;
}
w1->next = 0;
w2->next = 0 ;