A ring array, also known as a circular array, is a data structure that behaves like an array but the elements are connected in a circular fashion. In other words, the last element of the array is followed by the first element, forming a loop.
Here’s an example of how you can implement a ring array for Coldfusion:
<cfset stack = []>
<cfset stackSize = 5>
<cfset push("Vater")>
<cfset push("Mutter")>
<cfset push("Kind")>
<cfset push("hund")>
<cfset push("Bolle")>
<cfset push("Alien")>
<cfset push("Fussel")>
<cfset push("Barbie")>
<cffunction name="push" output="false" hint="Push a value onto the stack">
<cfargument name="value" required="true">
<cfif arrayLen(stack) EQ stackSize>
<cfset arrayDeleteAt(stack, 1)>
<cfset arrayAppend(stack, arguments.value)>
<cfelse>
<cfset arrayAppend(stack, arguments.value)>
</cfif>
</cffunction>
<cffunction name="pop" output="true" hint="Pop a value off the top of the stack">
<cfreturn arrayDeleteAt(stack, arrayLen(stack))>
</cffunction>
<cffunction name="peek" output="true" hint="Peek at the top value on the stack">
<cfreturn stack[arrayLen(stack)]>
</cffunction>
<cffunction name="rotate" output="false" hint="Rotate the stack">
<cfif arrayLen(stack) GT 0>
<cfset arrayPrepend(stack, pop())>
</cfif>
</cffunction>
<cfdump var="#stack#">
<cfdump var="#peek()#">