循环队列算法之快速实现--shell

#!/bin/bash


read_index=-1

write_index=-1

n=3

readable=0
writeable=n


read_one()
{
    echo "start to read...."
    if [ $readable -le 0 ];then
        echo "Cannot read anymore"
        return 1
    fi
  
    read_index=$(( (read_index+1) % n))
    readable=$((readable - 1))
    writeable=$((writeable + 1))
    echo "read from index : $read_index"

    echo "readable=$readable writeable=$writeable"
    return 0
}


write_one()
{
    echo "start to write..."
    if [ $writeable -le 0 ];then
        echo "Cannot write anymore"
        return 1
    fi
   
    write_index=$(( (write_index+1) % n))
    readable=$((readable + 1))
    writeable=$((writeable - 1))
    echo "write from index : $write_index"
    
    echo "readable=$readable writeable=$writeable"
    return 0
}


# Start to unit test

# r --- w changes to w --- r
read_one
read_one
read_one
read_one


write_one
write_one
write_one
write_one


read_one
read_one
write_one


echo '------------------------------'
# w --- r  changes to r --- w
read_one
read_one


write_one
write_one
write_one

猜你喜欢

转载自blog.csdn.net/wangxugangzy05/article/details/54895886