untitled

Similar documents
Microsoft PowerPoint - 제4장-스택과큐.pptx

03장.스택.key

5.스택(강의자료).key

chap x: G입력

데이터구조 (Chapter 3: Stacks and Queues) 2011 년봄학기 숙명여자대학교이과대학멀티미디어과학과박영호

슬라이드 1

PowerPoint 프레젠테이션

chap 5: Trees

11강-힙정렬.ppt

2. QUEUE OPERATIONS Initialize the queue Insert to the rear of the queue (also called as Enqueue) Remove (Delete) from the front of the queue (also ca

o 스택 (stack) ~ 쌓아놓은더미 1. 스택의개요 - 2 -

Chapter 4. LISTS

K&R2 Reference Manual 번역본

02 C h a p t e r Java

슬라이드 1

<BCBCB9CCB3AA20C0DAB7E1202D20BDBAC5C3C5A52E687770>

PowerPoint 프레젠테이션

chap x: G입력

Microsoft PowerPoint - ch08_큐 [호환 모드]

06장.리스트

chap01_time_complexity.key

Chapter 4. LISTS

PowerPoint 프레젠테이션

07 자바의 다양한 클래스.key

untitled

본 강의에 들어가기 전

PowerPoint 프레젠테이션

13주-14주proc.PDF

PowerPoint Presentation

03장.스택

4장

비긴쿡-자바 00앞부속

12-file.key

6주차.key

05-class.key

Microsoft PowerPoint - 04-UDP Programming.ppt

03_queue

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

OCaml

자바 프로그래밍

rmi_박준용_final.PDF

슬라이드 1

Chapter 4. LISTS

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - Java7.pptx

Java

chap10.PDF

PowerPoint 프레젠테이션

슬라이드 1

04장.큐

Contents v 학습목표 자료구조큐에대한개념을스택과비교하여이해한다. 큐의특징과연산방법에대해알아본다. 순차표현방법을이용한큐와연결표현방법을이용한큐를구현해본다. 큐의응용방법을알아본다. v 내용 큐 큐의구현 큐의응용 2/74

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

C++-¿Ïº®Çؼ³10Àå

untitled


Lab 5. 실습문제 (Double linked list)-1_해답.hwp

Java ...

5장.key

11장 포인터

03-JAVA Syntax(2).PDF

PowerPoint Presentation

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

ch09

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

chap7.key

Microsoft PowerPoint - 07-chap05-Stack.ppt

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

Microsoft PowerPoint - ch07_스택 [호환 모드]

untitled

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint Presentation

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

PowerPoint 프레젠테이션

강의10

4장.문장

Algorithms

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp


untitled

Design Issues

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Microsoft PowerPoint - 03-TCP Programming.ppt

02장.배열과 클래스

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

10주차.key

FileMaker ODBC and JDBC Guide

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

ABC 10장

슬라이드 1

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

MPLAB C18 C

슬라이드 1

Transcription:

- -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front)

A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top

#define MAX_STACK_SIZE 100 int stack[max_stack_size]; int top = -1; /* top 1. */

void push(int item) { if(top >= MAX_STACK_SIZE - 1) { stack_full(); return; } stack[++top] = item; }

int pop( ) { if(top == -1) return stack_empty(); return stack[top--]; }

int isempty() { if( top < 0 ) return(1); else return(0); } int isfull() { if ( top >= MAX_STACK_SIZE 1 ) return(1); else return(0); }

#include <stdio.h> #define MAX_STACK_SIZE 100 int stack[max_stack_size]; int top = -1; void push(int item) { if(top >= MAX_STACK_SIZE - 1) { printf("stack_full()\n"); return; } stack[++top] = item; } int pop() { if(top == -1) { printf("stack_empty()\n"); exit(); } return stack[(top)--]; }

int isempty() { if( top == -1 ) return(1); else return(0); } int isfull() { if ( top >= MAX_STACK_SIZE -1 ) return(1); else return(0); } int main() { int e; push(20); push(40); push(60); printf(" Begin Stack Test...\n"); } while(!isempty()) { e = pop(); printf("value = %d\n", e); }

// Stack.java // to run this program: C>java StackApp import java.io.*; // for I/O //////////////////////////////////////////////////////////////// class StackX { private int maxsize; // size of stack array private double[] stackarray; private int top; // top of stack //-------------------------------------------------------------- public StackX(int s) // constructor { maxsize = s; // set array size stackarray = new double[maxsize]; // create array top = -1; // no items yet } //-------------------------------------------------------------- public void push(double j) // put item on top of stack { stackarray[++top] = j; // increment top, insert item } //-------------------------------------------------------------- public double pop() // take item from top of stack { return stackarray[top--]; // access item, decrement top } //-------------------------------------------------------------- public double peek() // peek at top of stack { return stackarray[top]; } //-------------------------------------------------------------- public boolean isempty() // true if stack is empty { return (top == -1); } //-------------------------------------------------------------- public boolean isfull() // true if stack is full { return (top == maxsize-1); } //-------------------------------------------------------------- } // end class StackX

//////////////////////////////////////////////////////////////// class StackApp { public static void main(string[] args) { StackX thestack = new StackX(10); // make new stack thestack.push(20); // push items onto stack thestack.push(40); thestack.push(60); thestack.push(80); while(!thestack.isempty() ) // until it's empty, { // delete item from stack double value = thestack.pop(); System.out.print(value); // display it System.out.print(" "); } // end while System.out.println(""); } // end main() } // end class StackApp

A front=rear A B front rear front A B C B C insert(a) insert(b) insert(c) rear delete(a) front rear B C D insert(d) front rear

#define MAX_QUEUE_SIZE 100 typedef struct { int key; /* other fields */ } element; element queue[max_queue_size]; int rear = -1; int front = -1;

void insert(int *rear, element item) { if(*rear == MAX_QUEUE_SIZE - 1) { queue_full(); /*? */ return; } queue[++*rear] = item; }

element delete(int *front, int rear) { if(*front == rear) return queue_empty(); /* return an error key */ return queue[++*front]; }

int isempty() { if( front == rear ) return(1); else return(0); } int isfull() { if ( rear == MAX_QUEUE_SIZE 1 ) return(1); else return(0); }

front rear Q[0] Q[1] Q[2] Q[3] -1-1 -1 0 J1 Job 1-1 1 J1 J2 Job 2-1 2 J1 J2 J3 Job 3 0 2 J2 J3 Job 1 1 2 J3 Job 2

4. (circular queue)

J2 J3 J1 front = 0 front = 0 rear = 0 rear = 3 3

[Full ] [Full ] J2 J3 J8 J9 J1 J4 J7 J5 J6 J5 front = 0 rear = 5 front = 4 rear = 3 Full

*rear = (*rear +1) % MAX_QUEUE_SIZE ; -delete front front = (front +1) % MAX_QUEUE_SIZE ;

- () front rear -1?

Review