func (rs *RSDic) PushBack(bit bool) {
	if (rs.num % smallBlockSize) == 0 {
		rs.writeBlock()
	}
	if bit {
		rs.lastBlock |= (1 << (rs.num % smallBlockSize))
		if (rs.oneNum % selectBlockSize) == 0 {
			rs.selectOneInds = append(rs.selectOneInds, rs.num/largeBlockSize)
		}
		rs.oneNum++
		rs.lastOneNum++
	} else {
		if (rs.zeroNum % selectBlockSize) == 0 {
			rs.selectZeroInds = append(rs.selectZeroInds, rs.num/largeBlockSize)
		}
		rs.zeroNum++
		rs.lastZeroNum++
	}
	rs.num++
}
// PushBack appends the bit to the end of B
PushBack appends the bit to the end of B
// PushBack appends the bit to the end of B
func (rs *RSDic) PushBack(bit bool) {
	if (rs.num % smallBlockSize) == 0 {
		rs.writeBlock()
	}
	if bit {
		rs.lastBlock |= (1 << (rs.num % smallBlockSize))
		if (rs.oneNum % selectBlockSize) == 0 {
			rs.selectOneInds = append(rs.selectOneInds, rs.num/largeBlockSize)
		}
		rs.oneNum++
		rs.lastOneNum++
	} else {
		if (rs.zeroNum % selectBlockSize) == 0 {
			rs.selectZeroInds = append(rs.selectZeroInds, rs.num/largeBlockSize)
		}
		rs.zeroNum++
		rs.lastZeroNum++
	}
	rs.num++
}
func ( rs * RSDic ) PushBack ( bit bool ) { if ( rs . num % smallBlockSize ) == 0 { rs . writeBlock ( ) } if bit { rs . lastBlock |= ( 1 << ( rs . num % smallBlockSize ) ) if ( rs . oneNum % selectBlockSize ) == 0 { rs . selectOneInds = append ( rs . selectOneInds , rs . num / largeBlockSize ) } rs . oneNum ++ rs . lastOneNum ++ } else { if ( rs . zeroNum % selectBlockSize ) == 0 { rs . selectZeroInds = append ( rs . selectZeroInds , rs . num / largeBlockSize ) } rs . zeroNum ++ rs . lastZeroNum ++ } rs . num ++ }
PushBack appends the bit to the end of B
PushBack appends the bit to the end of B