首页 > 编程语言 > 详细

linux shell命令之数组的一些简单的数据结构

时间:2021-04-12 18:19:24      阅读:25      评论:0      收藏:0      [点我收藏+]


1.堆栈
./stack.sh
==============================
===========STACK==============
yukicaiqing

Stack Pointer=49
Just popped "" off the stack
==============================

==============================
===========STACK==============
tang
robin
zawuster
yukicaiqing

Stack Pointer=46
Just popped "" off the stack
==============================

==============================
===========STACK==============
zawuster
yukicaiqing

Stack Pointer=48
Just popped "robin" off the stack
==============================

==============================
===========STACK==============
Yanchun
Ullman
Knuth
zawuster
yukicaiqing

Stack Pointer=45
Just popped "robin" off the stack
==============================

vi matrix.sh
#!/bin/bash

#定义行数、列数及数组名
ROW=5
COL=5
declare -a MATRIX

load_alpha()
{
local rc=0
local index
#for循环将A~Y这25个字母存储到MATRIX数组
for i in A B C D E F G H I J K L M N O P Q R S T U V W X Y
do
local row=`expr $rc / $COL`
local column=`expr $rc % $ROW`
let "index = $row * $ROW + $column"
alpha[$index]=$i
let "rc += 1"
done
}

print_alpha()
{
local row=0
local index

echo

#逐行打印MATRIX数组
while [ "$row" -lt "$ROW" ]
do
local column=0
echo -n " "
while [ "$column" -lt "$COL" ]
do
let "index = $row * $ROW + $column"
echo -n "${alpha[index]} "
let "column += 1"
done
let "row += 1"
echo
done
echo
}

filter() #过滤负的数组下标
{
echo -n " " #产生倾斜

if [[ "$1" -ge 0 && "$1" -lt "$ROW" && "$2" -ge 0 && "$2" -lt "$COL" ]]
then
let "index = $1 * $ROW + $2"
#现在按照旋转方向进行打印
echo -n " ${alpha[index]}"
#alpha[$row][$column]
fi
}

rotate() #将数组逆时针旋转45度,从左下角进行“平衡”
{
local row
local column
for (( row = ROW; row > -ROW; row-- ))
do
for (( column = 0; column < COL; column++ ))
do
if [ "$row" -ge 0 ]
then
let "t1 = $column - $row"
let "t2 = $column"
else
let "t1 = $column"
let "t2 = $column + $row"
fi

filter $t1 $t2 #将负的数组下标过滤出来
done
echo; echo
done
}

#下面利用上述函数创建二维数组,逐行和旋转45度 打印数组
load_alpha #加载数组
print_alpha #打印数组
rotate #逆时针旋转45度 打印

./matrix.sh

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y

 

E

D J

C I O

B H N T

A G M S Y

F L R X

K Q W

P V

U

linux shell命令之数组的一些简单的数据结构

原文:https://www.cnblogs.com/zhudaheng123/p/14648932.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!