PL HW 01_2 in perl
Sorce Bank 2010. 3. 14. 09:01
#!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
Sorce Bank 2010. 3. 14. 08:55
Node.rb
class Node attr_accessor :data, :rightChild, :leftChild, :parent def initialize data @parent=nil @data=data @rightChild=nil @leftChild=nil end endBinaryTree.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 물리 시물레이터
카테고리 없음 2010. 3. 1. 00:03
재미있는 장남감을 발견했습니다.션
PHUN이라고 2D 물리 시뮬레이션을 하는 프로그램입니다.
2D 물리 엔진 어떤거 있나 찾아보다가 발견했는데 직접 실행해보니 상당히 재미있군요.ㅋ
교육용으로 개발된것 같습니다.
설치도 윈도우,리눅스,맥 에서 쉽게 가능합니다. 라이센스는 사업용으로 사용만 안되면 프리이고요.
한번씩 심심풀이로 해보아도 좋겟네요.ㅋ
http://www.phunland.com/wiki/Home 에서 다운가능하고, 튜토리얼도 제공하고 있습니다.ㅋ
아래 동영상보시고 한번 해보세요.^^