Разделы презентаций


Основы программирования Лабораторная работа №13

Содержание

Задача 1 – Связанный, но не динамический! (код нужно копировать из презентации!)#define _CRT_SECURE_NO_WARNINGS#include #include struct Node { int data; struct Node * next;};struct Node * first = NULL;void printList() { struct Node * ptr

Слайды и текст этой презентации

Слайд 1Основы программирования Лабораторная работа №13
Связанный список

Власенко О.Ф.

Основы программирования Лабораторная работа №13Связанный списокВласенко О.Ф.

Слайд 2Задача 1 – Связанный, но не динамический! (код нужно копировать из

презентации!)
#define _CRT_SECURE_NO_WARNINGS

#include
#include

struct Node {
int data;
struct Node * next;
};

struct

Node * first = NULL;

void printList() {
struct Node * ptr = first;
while (ptr != NULL) {
printf("(%d) -> ", ptr->data);
ptr = ptr->next;
}
printf("NULL\n");
}

Слайд 3Задача 1 – Связанный, но не динамический! (2)
void main() {
printList();

struct

Node node1 = { 1, NULL };
struct Node node2 =

{ 2, NULL };
struct Node node3 = { 3, NULL };
printList();

first = &node1;
printList();

node1.next = &node2;
printList();

node2.next = &node3;
printList();

{
int x;
scanf("%d", &x);
}
}
Задача 1 – Связанный, но не динамический! (2)void main() {	printList();		struct Node node1 = { 1, NULL };	struct

Слайд 4Задача 2 – Связанный, и динамический!
void addToHead(int value) {
struct Node

* newNode = (struct Node*)malloc(sizeof(struct Node));

newNode->next = first;
newNode->data = value;

first

= newNode;
}

int deleteFromHead() {
int value = first->data;
struct Node * delNode = first;

first = first->next;
free(delNode);

return value;
}
Задача 2 – Связанный, и динамический!void addToHead(int value) {	struct Node * newNode = (struct Node*)malloc(sizeof(struct Node));	newNode->next =

Слайд 5Задача 2 – Связанный, и динамический! (2)
void main() {
printList();

addToHead(10);
printList();

addToHead(20);
printList();

addToHead(30);
printList();

int x1

= deleteFromHead();
printf("x1 = %d\n", x1);
printList();

int x2 = deleteFromHead();
printf("x2 = %d\n",

x2);
printList();

{
int x;
scanf("%d", &x);
}
}
Задача 2 – Связанный, и динамический! (2)void main() {	printList();		addToHead(10);	printList();	addToHead(20);	printList();	addToHead(30);	printList();	int x1 = deleteFromHead();	printf(

Слайд 6Задача 3 – Ищем по значению и очищаем!
int contains(int value)

{
struct Node * ptr = first;
while (ptr != NULL) {
if

(ptr->data == value) {
return 1;
}
ptr = ptr->next;
}
return 0;
}

void clearList() {
while (first != NULL)
{
struct Node * delNode = first;
first = first->next;
free(delNode);
}
}

Задача 3 – Ищем по значению и очищаем!int contains(int value) {	struct Node * ptr = first;	while (ptr

Слайд 7Задача 3 – Ищем по значению и очищаем! (2)
void main()

{
printList();

addToHead(400);
addToHead(300);
addToHead(200);
addToHead(100);
printList();

printf("contains(100) = %d\n", contains(100));
printf("contains(150) = %d\n", contains(150));
printf("contains(200) = %d\n", contains(200));

clearList();
printList();

printf("contains(100)

= %d\n", contains(100));
printf("contains(150) = %d\n", contains(150));
printf("contains(200) = %d\n", contains(200));
{
int x;
scanf("%d", &x);
}
}
Задача 3 – Ищем по значению и очищаем! (2)void main() {	printList();	addToHead(400);	addToHead(300);	addToHead(200);	addToHead(100);	printList();	printf(

Слайд 8Задача 4 – Подсчитать сумму всех элементов (код надо набирать руками!)

Задача 4 – Подсчитать сумму всех элементов (код надо набирать руками!)

Слайд 9Задача 5 – Подсчитать количество четных элементов (код надо придумать!)

Задача 5 – Подсчитать количество четных элементов (код надо придумать!)

Слайд 10Задача 6 – Все нечетные увеличить в 10 раз

Задача 6 – Все нечетные увеличить в 10 раз

Слайд 11Задача 7 – i-ый элемент увеличить в 100 раз

Задача 7 – i-ый элемент увеличить в 100 раз

Слайд 12Задача 8 – все элементы левее i-го увеличить в 10

раз

Задача 8 – все элементы левее i-го увеличить в 10 раз

Слайд 13Задача 9 – все элементы правее i-го увеличить в 10

раз

Задача 9 – все элементы правее i-го увеличить в 10 раз

Слайд 14Задача 10* – удалить i-ый элемент

Задача 10* – удалить i-ый элемент

Слайд 15Задачи 11+ ***
Во всех задачах нужно изменять поля NEXT, но

нельзя трогать поля DATA!!!

Вывести односвязанный список в обратную сторону

(Рекурсивное решение будет очень элегантно!)






Проверить есть ли в списке повторяющиеся элементы
Поменять местами два соседних элемента
Поменять местами элементы с индексами i и j
Отсортировать список по возрастанию



Задачи 11+ ***Во всех задачах нужно изменять поля NEXT, но нельзя трогать поля DATA!!!Вывести односвязанный список в

Слайд 16Домашнее задание
Если какие-то из домашних работ не доделаны – доделывайте

и сдавайте!

Домашнее заданиеЕсли какие-то из домашних работ не доделаны – доделывайте и сдавайте!

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

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

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

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

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


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

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