간단히 말해서, SRTF는

우선순위로 들어온것을 처리하는 것을 말한다.

<<소스코드>>


////process.java
public class process {
 
 public static void main(String[] args) {
  new Scheduling();
 }
}



//STRF.java
public class STRF {
 private int number;
 private int arrive_time;
 private int wait_time;
 private int burst_time;
 
 public STRF(int number,int arrive,int brust){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=brust;
  this.wait_time=0;
 }

 public void addwaittime(){
  wait_time++;
 }
 public void deletetime(){
  burst_time--;
 }
  
 public int getNumber() {
  return number;
 }
 public void setNumber(int number) {
  this.number = number;
 }
 public int getArrivalTime() {
  return arrive_time;
 }
 public void setArrivalTime(int arrive) {
  this.arrive_time = arrive;
 }
 public int getBurstTime() {
  return burst_time;
 }
 public void setBurstTime(int burstTime) {
  this.burst_time = burstTime;
 }

 public int getWaitingTime() {
  return wait_time;
 }

 public void setWaitingTime(int waitingTime) {
  this.wait_time = waitingTime;
 }
 

}




/////Scheduling.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class Scheduling {
 
 private ArrayList<STRF> processList = new ArrayList<STRF>();
 private ArrayList<STRF> waitingList = new ArrayList<STRF>();
 
 Scheduling() {
  System.out.println("���� ����");
  int nextArrival = 0;
  int processIndex = 0;
  int waitingTime = 0;
  STRF currentProcess = null;
  
  try {
   setFile("test\\2.inp.txt");
  }  catch (IOException e) {
   System.out.println("IOException!!");
  }
  
  sortProcess();  
  
  nextArrival = processList.get(0).getArrivalTime();
  int time=0;
  for(time =0;;time++){
   while(time == nextArrival){
    if(currentProcess == null){
     currentProcess = processList.get(processIndex);
    }else {
     waitingList.add(processList.get(processIndex));
    }
    processIndex++;
    if(processIndex == processList.size()){
     nextArrival = 0;
    } else {
     nextArrival = processList.get(processIndex).getArrivalTime();
    }
   }
   if(currentProcess != null) {
    if(waitingList.size() != 0) {
     sortWaitingList();
     if(currentProcess.getBurstTime() > waitingList.get(0).getBurstTime()){
      waitingList.add(currentProcess);
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     }
    }    
    if(currentProcess.getBurstTime() == 0) {
     if(waitingList.size() != 0) {
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     } else if(nextArrival == 0) {
      break;
     } else {
      continue;
     }
    }    
    currentProcess.deletetime();
    waitingTime += waitingList.size();
   }   
   System.out.println("Ÿ�� �÷���");
  }
  
  try {
   printProcess(waitingTime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 void setFile(String filename) throws NumberFormatException, IOException{
  
  int count;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  
  count = Integer.parseInt(br.readLine());
  System.out.println("count = "+count);
  for(int i=0;i<count;i++){
   System.out.println("asdf");
   String[] item = br.readLine().split(" ");
   STRF process = new STRF(Integer.parseInt(item[0]), Integer.parseInt(item[1]), Integer.parseInt(item[2]));
   processList.add(process);
  }   
  
  br.close();
  fr.close();
 }
 
 void printProcess(int waitingTime) throws IOException {
  System.out.println("���� ���");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime);
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
 
 void sortProcess() {
  System.out.println("���μ��� ����");
  for(int i=0;i<processList.size()-1;i++){
   for(int j=0;j<processList.size()-1-i;j++){
    if(processList.get(j).getArrivalTime() > processList.get(j+1).getArrivalTime() ||
     (processList.get(j).getArrivalTime() == processList.get(j+1).getArrivalTime() && processList.get(j).getNumber() > processList.get(j+1).getNumber())){
     STRF temp = processList.get(j);
     processList.remove(j);
     processList.add(j+1, temp);
     
    }
   }
  }  
 }
 
 void sortWaitingList() {
  for(int i=0;i<waitingList.size()-1;i++){
   for(int j=0;j<waitingList.size()-1-i;j++){
    if(waitingList.get(j).getBurstTime() > waitingList.get(j+1).getBurstTime() ||
     (waitingList.get(j).getBurstTime() == waitingList.get(j+1).getBurstTime() && waitingList.get(j).getBurstTime() > processList.get(j+1).getBurstTime())){
     STRF temp = waitingList.get(j);
     waitingList.remove(j);
     waitingList.add(j+1, temp);
    }
   }
  }
 }
}

///////////////////////////////////////////////

이것도 소스가 좀 더럽습니다. 이해 해주시기 바랍니다.^^

'IT 공부 > 자료구조' 카테고리의 다른 글

SSTF Scheduling  (0) 2012.02.28
FCFS  (2) 2012.02.25
SRTF 스케줄링  (0) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

SSTF 스케줄링

-탐색거리가 가장 짧은 요청이 비록 큐의 제일 앞에 있지 않다 하더라도 먼저

 서비스를 받는다.

-특정 요청들을 차별대우 하는 경향이 있다

-고도로 편중되어 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 훨씬 서비스를 덜 받는다.

-FCFS보다 처리량이 더 많고, 보통의 부하에서 평균 응답시간은 짧다

-단점 : 안쪽과 바깥쪽 트랙을 차별대우하기 때문에 응답시간에 큰 편차가 생긴다

■ 일괄처리 시스템에 유용하다.


<<소스 코드>>



///process.java

public class process {
 public static void main(String args[]){
  new Scheduling();
 }
 
}

//SSTF.java
public class SSTF {
 private int number;
 private int arrive_time;
 private int burst_time;
 private int wait_time;
 private int sub;
 
 public SSTF(){
 }
 public SSTF(int arrive,int burst){
  this.arrive_time=arrive;
  this.burst_time=burst;
  this.wait_time=0;
 }
 public int getNumber(){
  return number;
 }
 public int getArrive(){
  return arrive_time;
 }
 public int getBurst(){
  return burst_time;
 }
 public int getWait(){
  return wait_time;
 }
 public int getSub(){
  return sub;
 }
 public void setArrive(int arrive){
  this.arrive_time=arrive;
 }
 public void setBurst(int burst){
  this.burst_time=burst;
 }
 public void setWait(int wait){
  this.wait_time=wait;
 }
 public void setSub(int sub){
  this.sub=sub;
 }
 
}



////Scheduling.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

public class Scheduling {
 private ArrayList<SSTF> processList = new ArrayList<SSTF>();
 private ArrayList<SSTF> copyList = new ArrayList<SSTF>();
 int count;
 int processcount = 0;
 int headcount;
 int current;// ����
 int currentnum = 0;
 int num;
 int temp;
 int plus;
 int waittime = 0;
 int arrive = 0;

 Scheduling() {
  System.out.println("스케줄링 시작");
  try {
   setFile("test\\2.inp.txt");
  } catch (NumberFormatException e) {

  } catch (IOException e) {
   System.out.println("IOException!!");
  }
  sortProcess();
  waittime = processList.get(0).getBurst()+count;// 첫번쨰 자리 이동
  current = processList.get(0).getBurst();// 현재 Burst
  currentnum = 0;
  processList.get(0).setWait(1);
  // ///////////////////
  System.out.println("waittime : " + waittime);

  for (int i = 1; i < processcount; i++) {
   
   sort();
   
  }
  try {
   printProcess(waittime, processList.get(currentnum).getBurst());
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }

 private void sort() {
  int temp1=0;
  int temp = 0;
  int num = 0;
  int min = 5000;

  for (int i = 1; i < processcount; i++) {
   if (processList.get(i).getWait() == 0) {
    if (waittime >= processList.get(i).getArrive()) {
     temp = processList.get(i).getBurst()
       - processList.get(currentnum).getBurst();

     if (temp < 0) {
      temp *= -1;
     }

     if (min > temp) {
      min = temp;
      num = i;
     }
     System.out.println("burst : "
       + processList.get(i).getBurst()
       + "  currentburst : "
       + processList.get(currentnum).getBurst()
       + "  arrive : " + processList.get(i).getArrive());
    }

   }
  }// 최소 구하기
  if (num == 0) {
   for (int i = 1; i < processcount; i++) {
    if (processList.get(i).getWait() == 0) {
     if (min > processList.get(i).getArrive()) {
      temp = processList.get(i).getArrive()-waittime;
      temp1=processList.get(currentnum).getBurst()-processList.get(i).getBurst();
      if (temp < 0) {
       temp *= -1;
      }
      System.out.println(processList.get(i).getArrive());
      temp += temp1;
      if (min > temp) {
       min = temp;
       num = i;
      }      
     }
    }
   }

  }
  currentnum = num;
  processList.get(currentnum).setWait(1);

  System.out.println("min : " + min + "num : " + currentnum);

  waittime += min;
  waittime += count;
  System.out.println("waittime : " + waittime);
  System.out.println();
 }

 private void printProcess(int waitingTime, int head) throws IOException {
  System.out.println("프로세스");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime + " " + head);
  System.out.println(waitingTime + " " + head);
  pw.close();
  bw.close();
  fw.close();
 }

 private void setFile(String filename) throws NumberFormatException,
   IOException {

  String str;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  count = Integer.parseInt(br.readLine());// ��û�ð�(10)
  System.out.println("카운트 = " + count);

  for (int i = 0;; i++) {

   String[] item = br.readLine().split(" ");
   if (Integer.parseInt(item[0]) == -1
     && Integer.parseInt(item[1]) == -1) {// ���� ����
    System.out.println("������");
    break;
   }
   processcount++;
   System.out.println("Arrive//Burst");
   System.out.println(" " + Integer.parseInt(item[0]) + " "
     + Integer.parseInt(item[1]));
   SSTF process = new SSTF(Integer.parseInt(item[0]),
     Integer.parseInt(item[1]));// �Է�
   processList.add(process);
  }
  br.close();
  fr.close();
 }

 private void sortProcess() {
  for (int i = 0; i < processList.size() - 1; i++) {
   for (int j = 0; j < processList.size() - 1 - i; j++) {
    if (processList.get(j).getArrive() > processList.get(j + 1)
      .getArrive()
      || (processList.get(j).getArrive() == processList.get(
        j + 1).getArrive() && processList.get(j)
        .getBurst() > processList.get(j + 1).getBurst())) {
     SSTF temp = processList.get(j);
     processList.remove(j);
     processList.add(j + 1, temp);
    }
   }
  }
  for (int i = 0; i < processList.size(); i++) {
   if (processList.get(i).getWait() == current) {
    num = i;
    break;
   }
  }
 }

}


///////////////////////////////////////////////////////////
급하게 짠거라 소스가 많이 더럽습니다...

수정해서 쓰시면 될꺼 같습니다.^^

좋은 하루 되세요^^

'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
FCFS  (2) 2012.02.25
SRTF 스케줄링  (0) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22

first-come first-served 선도착 선처리.

선입 선처리 스케줄링 (First-Come, First-Served / FCFS)

- 선입 선처리 정책의 구현은 선입선출(FIFO) 큐로 쉽게 관리할 수 있다. 프로세스가 준비 완료 큐에 진입하면, 이 프로세스의 프로세스 제어 블록(PCB)을 큐의 끝에 연결한다.
- 선입 선처리를 위한 코드는 작성하기 쉽고 이해하기 쉽다. 그러나 선입 선처리 정책 하에서 평균 대기 시간은 종종 대단히 길 수 있다.
- 그러므로 선입 선처리 정책 하에서 평균 대기 시간은 일반적으로 최소가 아니며, 프로세스 CPU 버스트 시간이 크게 변할 경우에는 평균 대기시간도 상당히 변할 수 있다.

- 선입 선처리 스케줄링 알고리즘은 비선점형이다. 이는 특히 시분할 시스템에서 문제가 되는데, 그 이유는 시분할 시스템에서는 각 사용자가 규칙적인 간격으로 CPU의 몫을 얻는 것이 매우 중요하기 때문이다.

소스 코드

public class process {
 public static void main(String args[]){
  new Scheduling();
 }
 
}

///////////////////////////////////////////////////////////

public class FCFS {
 private int number;
 private int arrive_time;
 private int burst_time;
 private int wait_time;
 
 public FCFS(){
 }
 public FCFS(int number,int arrive,int burst){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=burst;
  this.wait_time=0;
 }
 public int getNumber(){
  return number;
 }
 public int getArrive(){
  return arrive_time;
 }
 public int getBurst(){
  return burst_time;
 }
 public int getWait(){
  return wait_time;
 }
 public void setArrive(int arrive){
  this.arrive_time=arrive;
 }
 public void setBurst(int burst){
  this.burst_time=burst;
 }
 public void setWait(int wait){
  this.wait_time=wait;
 }
 
}

///////////////////////////////////////////////////////////


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

public class Scheduling {
 private ArrayList<FCFS> processList = new ArrayList<FCFS>();
 int count;
 int processcount=0;
 int headcount;
 Scheduling() {
  System.out.println("생성자 시작");
  int nextArrival = 0;
  int processIndex = 0;
  int waittime = 0;
  
  int temp;
  FCFS currentProcess = null;
  
  try {
   setFile("test\\1.inp.txt");
  }catch(NumberFormatException e){
   
  }catch (IOException e) {
   System.out.println("IOException!!");
  }
  waittime=processList.get(0).getBurst();//첫도착시간
  for(int i=1;i<processcount;i++){
   System.out.println(" "+i);
//   if(processList.get(i).getArrive()==-1)//종료
//    break;
   if(processList.get(i).getArrive()>waittime){
    temp=processList.get(i).getArrive()-waittime;
    if(temp<0)
     temp*=-1;
    waittime+=temp;
    System.out.println("if  temp111  "+temp);
    temp=processList.get(i).getBurst()-processList.get(i-1).getBurst();
    if(temp<0)
     temp*=-1;
    waittime+=temp;
    System.out.println("if  temp222  "+temp);
   }else{
    temp=processList.get(i).getBurst()-processList.get(i-1).getBurst();
    if(temp<0)
     temp*=-1;
    waittime+=temp;
    System.out.println("else  temp"+temp);
   }
   waittime+=count;
   headcount=i;
   System.out.println("head : "+processList.get(headcount).getBurst());
   System.out.println("waittime : "+waittime);
   
  }
  
  try {
   printProcess(waittime, processList.get(headcount).getBurst());
   System.out.println(waittime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 private void printProcess(int waitingTime ,int head) throws IOException {
  System.out.println("파일 출력");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime+" ");
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
  private void setFile(String filename) throws NumberFormatException,IOException {

  
  String str;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  count = Integer.parseInt(br.readLine());//요청시간(3)
  System.out.println("요청시간 = " + count);
  
  for (int i = 0;; i++) { 
    
   String[] item = br.readLine().split(" ");
   if(Integer.parseInt(item[1])==-1 && Integer.parseInt(item[2])==-1){//종료 조건
    System.out.println("끝내라");
    break;
   }
   processcount++;  
   System.out.println("Number//Arrive//Burst");
   System.out.println(""+i+" "+Integer.parseInt(item[1])+" "+Integer.parseInt(item[2]));
   FCFS process = new FCFS(i,Integer.parseInt(item[1]),Integer.parseInt(item[2]));//입력
   processList.add(process);
  }
  br.close();
  fr.close();
 }
}


'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
SSTF Scheduling  (0) 2012.02.28
SRTF 스케줄링  (0) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22


오늘... 시간을 다 버린 주요인 소스!! ㅠㅠ

SRTF 스케줄링....

디스크 스케줄링....

아직도 잘 몰라 ㅠㅠ

그러나 어찌저찌해서 제출.. 아 공부 하자.
//메인 소스
public class process {
 
 STRF STRF[];
 public static void main(String[] args) {
  new Scheduling();
 }
}

//설정
public class STRF {
 private int number;
 private int arrive_time;
 private int wait_time;
 private int burst_time;
 
 public STRF(int number,int arrive,int brust){
  this.number=number;
  this.arrive_time=arrive;
  this.burst_time=brust;
  this.wait_time=0;
 }

 public void addwaittime(){
  wait_time++;
 }
 public void deletetime(){
  burst_time--;
 }
  
 public int getNumber() {
  return number;
 }
 public void setNumber(int number) {
  this.number = number;
 }
 public int getArrivalTime() {
  return arrive_time;
 }
 public void setArrivalTime(int arrive) {
  this.arrive_time = arrive;
 }
 public int getBurstTime() {
  return burst_time;
 }
 public void setBurstTime(int burstTime) {
  this.burst_time = burstTime;
 }

 public int getWaitingTime() {
  return wait_time;
 }

 public void setWaitingTime(int waitingTime) {
  this.wait_time = waitingTime;
 } 

}

//주요소스
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class Scheduling {
 
 private ArrayList<STRF> processList = new ArrayList<STRF>();
 private ArrayList<STRF> waitingList = new ArrayList<STRF>();
 
 Scheduling() {
  System.out.println("생성자 시작");
  int nextArrival = 0;
  int processIndex = 0;
  int waitingTime = 0;
  STRF currentProcess = null;
  
  try {
   setFile("test\\2.inp.txt");
  }  catch (IOException e) {
   System.out.println("IOException!!");
  }
  
  sortProcess();  
  
  nextArrival = processList.get(0).getArrivalTime();
  int time=0;
  for(time =0;;time++){
   while(time == nextArrival){
    if(currentProcess == null){
     currentProcess = processList.get(processIndex);
    }else {
     waitingList.add(processList.get(processIndex));
    }
    processIndex++;
    if(processIndex == processList.size()){
     nextArrival = 0;
    } else {
     nextArrival = processList.get(processIndex).getArrivalTime();
    }
   }
   if(currentProcess != null) {
    if(waitingList.size() != 0) {
     sortWaitingList();
     if(currentProcess.getBurstTime() > waitingList.get(0).getBurstTime()){
      waitingList.add(currentProcess);
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     }
    }    
    if(currentProcess.getBurstTime() == 0) {
     if(waitingList.size() != 0) {
      currentProcess = waitingList.get(0);
      waitingList.remove(0);
     } else if(nextArrival == 0) {
      break;
     } else {
      continue;
     }
    }    
    currentProcess.deletetime();
    waitingTime += waitingList.size();
   }   
   System.out.println("타임 플러스");
  }
  
  try {
   printProcess(waitingTime);
  } catch (IOException e) {
   System.out.println("IOException!!");
  }
 }
 
 void setFile(String filename) throws NumberFormatException, IOException{
  
  int count;

  FileReader fr = new FileReader(filename);
  BufferedReader br = new BufferedReader(fr);
  
  count = Integer.parseInt(br.readLine());
  System.out.println("count = "+count);
  for(int i=0;i<count;i++){
   System.out.println("asdf");
   String[] item = br.readLine().split(" ");
   STRF process = new STRF(Integer.parseInt(item[0]), Integer.parseInt(item[1]), Integer.parseInt(item[2]));
   processList.add(process);
  }   
  
  br.close();
  fr.close();
 }
 
 void printProcess(int waitingTime) throws IOException {
  System.out.println("파일 출력");
  FileWriter fw = new FileWriter("test\\2.out.txt");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
  pw.println(waitingTime);
  System.out.println(waitingTime);
  pw.close();
  bw.close();
  fw.close();
 }
 
 void sortProcess() {
  System.out.println("프로세스 시작");
  for(int i=0;i<processList.size()-1;i++){
   for(int j=0;j<processList.size()-1-i;j++){
    if(processList.get(j).getArrivalTime() > processList.get(j+1).getArrivalTime() ||
     (processList.get(j).getArrivalTime() == processList.get(j+1).getArrivalTime() && processList.get(j).getNumber() > processList.get(j+1).getNumber())){
     STRF temp = processList.get(j);
     processList.remove(j);
     processList.add(j+1, temp);
     
    }
   }
  }  
 }
 
 void sortWaitingList() {
  for(int i=0;i<waitingList.size()-1;i++){
   for(int j=0;j<waitingList.size()-1-i;j++){
    if(waitingList.get(j).getBurstTime() > waitingList.get(j+1).getBurstTime() ||
     (waitingList.get(j).getBurstTime() == waitingList.get(j+1).getBurstTime() && waitingList.get(j).getBurstTime() > processList.get(j+1).getBurstTime())){
     STRF temp = waitingList.get(j);
     waitingList.remove(j);
     waitingList.add(j+1, temp);
    }
   }
  }
 }
}


하.. 답답하네 ㅠㅠ 이거 엄청 오래 했네요 ㅠㅠ

내일부터 FCFS하고 SSTF 공부해서 올릴께요

'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
SSTF Scheduling  (0) 2012.02.28
FCFS  (2) 2012.02.25
[자료구조] Linked List(링크드리스트)  (0) 2012.02.22


자료구조 링크드 리스트....

진짜 링크드 리스트 하기 싫었는데 결국 했습니다....

하.....

<<소스코드>>
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

struct List
{
 int data;
 struct List* next;
}LIST;

typedef struct List*  PLIST;

void Add ( PLIST plist );
void Delete();
void show();

PLIST head=NULL, tail=NULL;

void main()
{
 int select;
 PLIST plist;
 while(1)
 {
  printf("SELECT!!\n");
  printf("1. Intsert\n");
  printf("2. Delete\n");
  printf("3. Show\n");
  printf("4. Exit\n");

  printf("입력 : ");
  scanf("%d",&select);
  plist=(PLIST)malloc(sizeof(LIST));
  switch(select)
  {
  case 1:
   Add(plist);
   break;
  case 2:
   Delete();
   break;
  case 3:
   show();
   break;
  case 4:
   exit(0);
  }
 }
 free(plist);
}
void Add ( PLIST plist )
{
 int num;
 printf("넣을값:");
 scanf("%d",&num);

 plist->next=NULL;
 plist->data=num;

 if(head==NULL)// head가 NULL일때,
 {
  head=tail=plist;
 }
 else
 {
  tail->next=plist;
  tail=plist;
 }
}
void show()
{
 PLIST plist=head;
 while(plist)
 {
  printf("%d\n",plist->data);
  plist=plist->next;
 }
}
void Delete()
{
 int num;
 PLIST plist=head->next;
 tail=head;
 
 printf("삭제할값:");
 scanf("%d",&num);

 while(plist!=NULL)
 {
  if(plist->data==num)
  {
   tail->next=plist->next;
   return ;
  }
  else
  {
   tail=tail->next;
   plist=plist->next;
  }
 }
}

'IT 공부 > 자료구조' 카테고리의 다른 글

SRTF  (2) 2012.02.28
SSTF Scheduling  (0) 2012.02.28
FCFS  (2) 2012.02.25
SRTF 스케줄링  (0) 2012.02.25

+ Recent posts