1. Trang chủ
  2. » Giáo án - Bài giảng

Slide 4 data and structure in java

91 540 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 91
Dung lượng 0,91 MB

Nội dung

LECTURE 4 DATA STRUCTURES PHẦN 1 XÂY DỰNG MỘT SỐ CẤU TRÚC • Linked List • Stack • Queue • Tree 3 Linked List • Linked list là cấu trúc gồm các node liên kết với nhau thông qua các mối liên kết. Node cuối linked list được đặt là null để đánh dấu kết thúc danh sách. • Linked list giúp tiết kiệm bộ nhớ so với mảng trong các bài toán xử lý danh sách. • Khi chèn/xoá một node trên linked list, không phải dãn/dồn các phần tử như trên mảng. • Việc truy nhập trên linked list luôn phải tuần tự. 4 Linked List • Thể hiện Node thông qua lớp tự tham chiếu (self- referential class) class Node { private int data; private Node nextNode; // constructors and methods } 15 10 5 Linked List • Một danh sách được quản lý bởi tham chiếu tới node đầu và node cuối. H D Q firstNode lastNode 6 Cài đặt Linked List // Dinh nghia mot node trong linked list class Node { int data; Node next; Node(int value) { this(value, null); } Node(int value, Node node) { data = value; next = node; } int getData() { return data; } Node getNext() { return next; } } 7 Cài đặt Linked List // Dinh nghia lop LinkedList class DanhSach { private Node first; private Node last; public DanhSach() { first = last = null; } public boolean isEmpty() { return (first == null); } public void insertAtFront(int insertItem) { if ( isEmpty() ) first = last = new Node( insertItem ); else first = new Node( insertItem, first ); } // Dinh nghia mot node trong linked list class Node { int data; Node next; Node(int value) { this(value, null); //data = value; //next = null; } Node(int value, Node node) { data = value; next = node; } int getData() { return data; } Node getNext() { return next; } } 8 Cài đặt Linked List public void insertAtBack( int insertItem ) { if ( isEmpty() ) first = last = new Node( insertItem ); else last = last.next= new Node( insertItem ); } public int removeFromFront() { int removeItem = -1; if ( ! isEmpty() ) { removeItem = first.data; if ( first == last ) first = last = null; else first = first.next; } return removeItem; } 9 Cài đặt Linked List public int removeFromBack() { int removeItem = -1; if ( ! isEmpty() ) { removeItem = last.data; if ( first == last ) first = last = null; else { Node current = first; while ( current.next != last ) current = current.next; last = current; last.next =null; } } return removeItem; } 10 Cài đặt Linked List public void print() { Node node = first; while (node != null) { System.out.print(node.data + " "); node = node.next; } System.out.println("\n"); } } [...]... nhị phân – Inorder traversal – Preorder traversal – Postorder traversal 23 Binary Search Tree • Ví dụ về Binary Search Tree 47 Cây con trái Cây con phải 25 11 7 17 77 43 31 44 65 93 68 24 Cài dat nút Binary Search Tree đặt //Cai public class TreeNode { int data; TreeNode leftNode, rightNode; public TreeNode( int nodeData ) { data = nodeData; leftNode = rightNode = null; } public void insert( int value... IntSet(IntSet s) { this(s.capacity); for (int i=0;i . Node { int data; Node next; Node(int value) { this(value, null); / /data = value; //next = null; } Node(int value, Node node) { data = value; next = node; } int getData() { return data; . list.insertAtFront( 5 ); list.insertAtFront( 7 ); list.insertAtBack( 9 ); list.insertAtBack( 8 ); list.insertAtBack( 4 ); list.print(); list.removeFromFront(); list.removeFromBack(); list.print(); . list class Node { int data; Node next; Node(int value) { this(value, null); } Node(int value, Node node) { data = value; next = node; } int getData() { return data; } Node getNext()

Ngày đăng: 11/06/2014, 08:58

TỪ KHÓA LIÊN QUAN