Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Основы программирования - Java. Списки

Содержание

СпискиВспоминаем СиОдносвязный список Двусвязный списокJava – специфика реализации списков в Java
Основы программирования - Java ФИСТ 1 курс   Власенко Олег ФедосовичЛекция 6Списки СпискиВспоминаем СиОдносвязный список Двусвязный списокJava – специфика реализации списков в Java Динамические структуры данных«данные особой структуры, которые представляют собойотдельные элементы, связанные с помощью Где и когда нужны динамические структуры данных??? Односвязный списокstruct Node {	int data;	struct Node * next;};struct Node * first = NULL; Отрабатываем навыки рисованияvoid main() {	struct Node node1 = {1, NULL};	struct Node node2 Связанный список в динамической памяти#define _CRT_SECURE_NO_WARNINGS#include struct Node {	int data;	struct Node * Связанный список в динамической памяти (2)void printList() {	struct Node * ptr = Связанный список в динамической памяти (3)void addToHead(int value) {	struct Node * newNode;	newNode Связанный список в динамической памяти (4)int deleteFromHead(){	int value = first->data;	struct Node * Связанный список в динамической памяти (5)void main() {		addToHead(10);	printList();	addToHead(20);	printList();	addToHead(30);	printList(); Связанный список в динамической памяти (6)	int x1 = deleteFromHead();	printf( Связанный список в динамической памяти (7)	int x4 = deleteFromHead();	printf( Двусвязный списокstruct Node2 {	int data;	struct Node2 * next;	struct Node2 * prev;};struct Node2 Список на Java Интерфейс спискаpublic interface IList {			void insertToHead(int key);	void deleteFromHead();	int getHeadElement();	boolean contains(int key);		String toString();		} Класс узлаclass Node {	int key;			Node next;	Node prev; // previous		public Node(int key, Node Класс списка (1)public class List implements IList {	Node head; // first	Node tail; Класс списка (2)	@Override	public String toString() {		String str = "; return str; }"> Класс списка (3)	@Override	public void insertToHead(int key) {		Node p = new Node(key, head.next, Класс списка (4)	@Override	public void deleteFromHead() {				if (head.next == tail) {			return;		}				Node delNext = Класс списка (5)	@Override	public int getHeadElement() {		return head.next.key;	} Класс списка (6)	@Override	public boolean contains(int key) {		Node p = head.next;		while (p != GUI для проб со списком GUI для проб со списком Спасибо за внимание!Власенко Олег ФедосовичE-mail: vlasenko.oleg@gmail.comVk: vk.com/oleg.f.vlasenkoТелефон: +7 902 246 05 47
Слайды презентации

Слайд 2 Списки
Вспоминаем Си
Односвязный список
Двусвязный список
Java – специфика реализации

СпискиВспоминаем СиОдносвязный список Двусвязный списокJava – специфика реализации списков в Java

списков в Java


Слайд 3 Динамические структуры данных

«данные особой структуры, которые представляют собой
отдельные

Динамические структуры данных«данные особой структуры, которые представляют собойотдельные элементы, связанные с

элементы, связанные с помощью ссылок.
Каждый элемент ( узел

) состоит из двух областей памяти:
поля данных и ссылок.
Ссылки – это адреса других узлов этого же типа, с которыми данный элемент логически связан.
В языке Си для организации ссылок используются переменные-указатели.
При добавлении нового узла в такую структуру выделяется новый блок памяти и (с помощью ссылок) устанавливаются связи этого элемента с уже существующими.
Для обозначения конечного элемента в цепи используются нулевые ссылки (NULL).»
http://k504.khai.edu/attachments/article/762/devcpp_4.pdf

Слайд 4 Где и когда нужны динамические структуры данных???




Где и когда нужны динамические структуры данных???

Слайд 5 Односвязный список

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





struct

Односвязный списокstruct Node {	int data;	struct Node * next;};struct Node * first = NULL;

Node * first = NULL;



Слайд 6 Отрабатываем навыки рисования

void main() {
struct Node node1 =

Отрабатываем навыки рисованияvoid main() {	struct Node node1 = {1, NULL};	struct Node

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

Node node3 = { 3, NULL };

first = &node1;
node1.next = &node2;
node2.next = &node3;

printList();
}

Слайд 7 Связанный список в динамической памяти

#define _CRT_SECURE_NO_WARNINGS
#include

struct Node

Связанный список в динамической памяти#define _CRT_SECURE_NO_WARNINGS#include struct Node {	int data;	struct Node

{
int data;
struct Node * next;
};

struct Node * first =

NULL;

Слайд 8 Связанный список в динамической памяти (2)

void printList() {
struct

Node * ptr = first;
while (ptr != NULL) {
printf("(%d)

-> ", ptr->data);
ptr = ptr->next;
}
printf("NULL\n");
}

Слайд 9 Связанный список в динамической памяти (3)

void addToHead(int value)

Связанный список в динамической памяти (3)void addToHead(int value) {	struct Node *

{

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

newNode->next =

first;
newNode->data = value;

first = newNode;
}

Слайд 10 Связанный список в динамической памяти (4)


int deleteFromHead()
{
int value

Связанный список в динамической памяти (4)int deleteFromHead(){	int value = first->data;	struct Node

= first->data;
struct Node * delNode = first;

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

return

value;
}

Слайд 11 Связанный список в динамической памяти (5)

void main() {

addToHead(10);
printList();

addToHead(20);
printList();

addToHead(30);
printList();

Связанный список в динамической памяти (5)void main() {		addToHead(10);	printList();	addToHead(20);	printList();	addToHead(30);	printList();

Слайд 12 Связанный список в динамической памяти (6)

int x1 =

Связанный список в динамической памяти (6)	int x1 = deleteFromHead();	printf(

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

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

x2);
printList();

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

Слайд 13 Связанный список в динамической памяти (7)

int x4 =

Связанный список в динамической памяти (7)	int x4 = deleteFromHead();	printf(

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


Слайд 14 Двусвязный список

struct Node2 {
int data;
struct Node2 * next;
struct

Двусвязный списокstruct Node2 {	int data;	struct Node2 * next;	struct Node2 * prev;};struct

Node2 * prev;

};



struct Node2 * first = NULL;
struct Node2

* last = NULL;

Слайд 15 Список на Java

Список на Java

Слайд 16 Интерфейс списка

public interface IList {

void insertToHead(int key);
void deleteFromHead();
int

Интерфейс спискаpublic interface IList {			void insertToHead(int key);	void deleteFromHead();	int getHeadElement();	boolean contains(int key);		String toString();		}

getHeadElement();
boolean contains(int key);
String toString();

}


Слайд 17 Класс узла
class Node {
int key;

Node next;
Node prev; //

Класс узлаclass Node {	int key;			Node next;	Node prev; // previous		public Node(int key,

previous

public Node(int key, Node next, Node prev) {
this.key =

key;
this.next = next;
this.prev = prev;
}
}


Слайд 18 Класс списка (1)
public class List implements IList {
Node

Класс списка (1)public class List implements IList {	Node head; // first	Node

head; // first
Node tail; // last

public List() {
head =

new Node(0, null, null);
tail = new Node(0, head, head);
head.next = tail;
head.prev = tail;
}


Слайд 19 Класс списка (2)
@Override
public String toString() {
String str =

"

str + p.key + " ";
p = p.next;
}

str = str + ">>";
return str;
}

Слайд 20 Класс списка (3)
@Override
public void insertToHead(int key) {
Node p

Класс списка (3)	@Override	public void insertToHead(int key) {		Node p = new Node(key,

= new Node(key, head.next, head);
head.next.prev = p;
head.next = p;

}


Слайд 21 Класс списка (4)
@Override
public void deleteFromHead() {

if (head.next ==

Класс списка (4)	@Override	public void deleteFromHead() {				if (head.next == tail) {			return;		}				Node delNext

tail) {
return;
}

Node delNext = head.next.next;
delNext.prev = head;
head.next = delNext;

}


Слайд 22 Класс списка (5)
@Override
public int getHeadElement() {
return head.next.key;

}

Класс списка (5)	@Override	public int getHeadElement() {		return head.next.key;	}

Слайд 23 Класс списка (6)
@Override
public boolean contains(int key) {
Node p

Класс списка (6)	@Override	public boolean contains(int key) {		Node p = head.next;		while (p

= head.next;
while (p != tail) {
if (p.key == key)

{
return true;
}
p = p.next;
}
return false;
}

} // public class List implements IList {

Слайд 24 GUI для проб со списком

GUI для проб со списком

Слайд 25 GUI для проб со списком

GUI для проб со списком

  • Имя файла: osnovy-programmirovaniya-java-spiski.pptx
  • Количество просмотров: 108
  • Количество скачиваний: 0