PL HW 01_2 in perl

#!usr/bin/perl

unless ($#ARGV == 1) {
print "Usage : perl   \n";
exit(1);
}

open(IN_FILE,$ARGV[0]);
open(OUT_FILE,">${ARGV[1]}");
@lines=;
foreach(@lines) {
$_=~s/\d{1,4}년 ?[12]?[0-9]월 ?[1-3]?[0-9]일/$&<\/DATE>/g;
$_=~s/[1]?[0-9]시 [1-6]?[0-9]분/

'Sorce Bank' 카테고리의 다른 글

Java Binary Tree  (0) 2010.03.14
Python Client  (0) 2010.03.14
Python Server  (0) 2010.03.14
PL_HW01-3 in Perl  (0) 2010.03.14
Binary Tree in Ruby  (0) 2010.03.14

Binary Tree in Ruby

Node.rb
class Node
  attr_accessor :data, :rightChild, :leftChild, :parent
  def initialize data
    @parent=nil
    @data=data
    @rightChild=nil
    @leftChild=nil
  end
end
BinaryTree.rb
require 'Node'

class BinaryTree
  attr_reader :root
  @@NilNode=Node.new(nil)
  def initialize
    @root=@@NilNode
  end

  def insert data
    if @root==@@NilNode
      # When first Node insert
      @root=makeNode(data,@@NilNode)
    else
      nextNode=@root
      loop do
        if nextNode.data > data
          if nextNode.leftChild==@@NilNode
            nextNode.leftChild=makeNode(data,nextNode)
            return true
          end
          nextNode= nextNode.leftChild
        elsif nextNode.data < data
          if nextNode.rightChild==@@NilNode
            nextNode.rightChild=makeNode(data,nextNode)
            return true
          end
          nextNode=nextNode.rightChild
        elsif nextNode.data==data
          puts "Dupplicate value. : #{data}"
          return false
        end
      end
    end
  end

  def makeNode d,p
    node=Node.new d
    node.rightChild=@@NilNode
    node.leftChild=@@NilNode
    node.parent=p
    return node
  end

  def delete data
    target=@root
    until target==@@NilNode
      if target.data>data
        target=target.leftChild
      elsif target.data < data
        target=target.rightChild
      else
        if target.leftChild==@@NilNode and target.rightChild==@@NilNode
          # When target is Leaf Node
          target.parent.leftChild=@@NilNode if target.parent.leftChild==target
          target.parent.rightChild=@@NilNode if target.parent.rightChild==target
          return true
        elsif target.leftChild!=@@NilNode and target.rightChild!=@@NilNode
          # When target has two Childs
          exchangeNode=target.leftChild
          until exchangeNode.rightChild == @@NilNode
            exchangeNode= exchangeNode.rightChild
          end
          delete exchangeNode.data
          target.data = exchangeNode.data
          return true
        else
          # When target has a Child
          if target.leftChild==@@NilNode
            target.rightChild.parent=target.parent
            target.parent.leftChild=target.rightChild if target.parent.leftChild==target
            target.parent.rightChild=target.rightChild if target.parent.rightChild==target
            return true
          else
            target.leftChild.parent=target.parent
            target.parent.leftChild=target.leftChild if target.parent.leftChild==target
            target.parent.rightChild=target.leftChild if target.parent.rightChild==target
            return true
          end
        end
      end
    end
    puts "없는값 검색"
    return false
  end

  def inorder n,show
    if n==@@NilNode
      return
    end
    show.call("InOrder :") if n==@root
    inorder n.leftChild,show
    show.call(n.data)
    inorder n.rightChild,show
  end

  def preorder n,show
    if n==@@NilNode
      return
    end
    show.call("PreOrder :") if n==@root
    show.call(n.data)
    preorder n.leftChild,show
    preorder n.rightChild,show
  end

  def postorder n,show
    if n==@@NilNode
      return
    end
    show.call("PostOrder :") if n==@root
    postorder n.leftChild,show
    postorder n.rightChild,show
    show.call(n.data)
  end
end

'Sorce Bank' 카테고리의 다른 글

Java Binary Tree  (0) 2010.03.14
Python Client  (0) 2010.03.14
Python Server  (0) 2010.03.14
PL_HW01-3 in Perl  (0) 2010.03.14
PL HW 01_2 in perl  (0) 2010.03.14

PHUN (2D physics sandbox) 2D 물리 시물레이터

재미있는 장남감을 발견했습니다.션
PHUN이라고 2D 물리 시뮬레이션을 하는 프로그램입니다.
2D 물리 엔진 어떤거 있나 찾아보다가 발견했는데 직접 실행해보니 상당히 재미있군요.ㅋ
교육용으로 개발된것 같습니다.
설치도 윈도우,리눅스,맥 에서 쉽게 가능합니다. 라이센스는 사업용으로 사용만 안되면 프리이고요.
한번씩 심심풀이로 해보아도 좋겟네요.ㅋ

http://www.phunland.com/wiki/Home  에서 다운가능하고, 튜토리얼도 제공하고 있습니다.ㅋ
아래 동영상보시고 한번 해보세요.^^
prev 1 ··· 6 7 8 9 10 11 next