الیس که شعبدهبازی تازهکار است، باید چند مهارت پایه را تمرین کند. او پشتهای از کارتها دارد که میخواهد آنها را دستکاری کند.
برای اینکه کارها کمی سادهتر شود، او فقط از کارتهای ۱ تا ۱۰ استفاده میکند، بنابراین پشتهی کارتهایش را میتوان با یک جدول داخلی از اعداد نمایش داد. موقعیت هر کارت با سطر جدول متناظر است. یعنی سطر ۱ به کارت اول اشاره دارد، سطر ۲ به کارت دوم و به همین ترتیب.
برای برداشتن یک کارت، کارت موجود در اندیس position را از پشتهی دادهشده برگردانید.
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(card) = get_Item( stack = stack
position = 3 ). " card = 4
کمی تردستی کنید و کارت موجود در اندیس position را با کارت جایگزینی که داده شده است عوض کنید.
پشتهی تغییر یافته را برگردانید.
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(new_Stack) = set_Item( stack = stack
position = 3
replacement = 6 ).
" new_Stack = 1, 2, 6, 1
با درج یک کارت تازه در بالای پشته، یک کارت را ظاهر کنید. پشتهی تغییر یافته را برگردانید.
data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Top( stack = stack
new_Card = 8 ).
" new_Stack = 5, 9, 7, 1, 8
با حذف کارت موجود در position دادهشده از پشته، یک کارت را ناپدید کنید.
پشتهی تغییر یافته را برگردانید.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item( stack = stack
position = 3 ).
" new_Stack = 3, 2, 4, 8
با حذف کارت بالای پشته، یک کارت را ناپدید کنید. پشتهی تغییر یافته را برگردانید.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 3, 2, 6, 4
با درج یک کارت تازه در پایین پشته، یک کارت را ظاهر کنید. پشتهی تغییر یافته را برگردانید.
data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Bottom( stack = stack
new_Card = 8 ).
" new_Stack = 8, 5, 9, 7, 1
با حذف کارت پایین پشته، یک کارت را ناپدید کنید. پشتهی تغییر یافته را برگردانید.
data(stack) = value #( ( 8 ) ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 5, 9, 7, 1
اندازهی پشته (تعداد سطرها) را برگردانید.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(size_of_Stack) = get_Size_of_Stack( stack ).
" size_of_Stack = 5