Списки. Элемент списка. (Лекция 2) презентация

Определения Список – структура данных, представляющая собой конечную последовательность элементов. Элемент списка: Данные Связь

Слайд 1Списки
Лекция 2


Слайд 2Определения
Список – структура данных, представляющая собой конечную последовательность элементов.

Элемент списка:

Данные
Связь


Слайд 3Односвязные списки
Односвязный список – это список, у элементов которого существует связь,

указывающая на следующий элемент списка ( односторонняя связь).






Голова


Хвост


Слайд 4Описание списка на Си
struct list {
int data;

//информационное поле, данные
struct list *next; // указатель на следующий элемент списка
};

/* Описание переменных: */
struct list *head=NULL; // - указатель на голову списка
struct list *p, *t;



Слайд 5Создание первого элемента списка
p = (struct list*) malloc( sizeof( struct list

) );
p->data = 5;
p->next = NULL;
head = p;



head

p


5

NULL


Слайд 6Вставка нового элемента в начало списка
p = (struct list*) malloc( sizeof(

struct list ) );
p->data = 3;
p->next = head;
head = p;



head

p


5

NULL


3


Слайд 7Вставка нового элемента в конец списка
p = (struct list*) malloc( sizeof(

struct list ) );
p->data = 10;
p->next = NULL;
t = head;
while (t->next != NULL)
t = t->next;
t->next = p;



head

p


5


3


10

NULL


t

NULL


Слайд 8Вставка нового элемента в середину списка
p = (struct list*) malloc( sizeof(

struct list ) );
p->data = 4;
t = head;
while (t->next ->data != 5) //вставка перед элементом с заданным свойством
t = t->next;
p->next = t->next;
t->next = p;



head

p


5


3


10

NULL


t


4


Слайд 9Удаление элемента из списка
t = head;
while (t->next ->data != 5)
t =

t->next;
p = t->next;
t->next = p->next;
free(p);



head

p


5


3


10

NULL


t


4


Слайд 10Циклические списки
Циклический список – это список, в котором связь последнего элемента

указывает на первый или один из других элементов этого списка.


head





Задача: Для заданного односвязного списка определить,
является ли он циклическим.
Преобразовывать список нельзя.


Слайд 11Двусвязные списки
Двусвязные списки – это списки, элементы которых имеют по две

связи, указывающие на предыдущий и следующий элементы.






NULL

NULL

typedef struct list {
int data;
struct list *prev;
struct list *next;
} List;

head


Слайд 12Удаление элемента из двусвязного списка
List *del (List *p) { //возвращает указатель

на следующий элемент списка
List *pp,*pn;
if (p == NULL) return NULL;
pp = p->prev;
pn = p->next;
if (pp) pp->next = pn;
if (pn) pn->prev = pp;
free(p);
return pn;
}




pp



pn


p


Слайд 13Иерархические списки
Это списки, значениями элементов которых являются указатели на другие списки

(подсписки).






NULL

head










Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика