A New Generalized Data Stacking Programming ...

2 downloads 0 Views 723KB Size Report
Sep 11, 1997 - [9] Article in medicine, "Kidney Stone," http://www.medicinenet.com/kidney_stone/page3.htm, 14 May. 2013. [10] Steve Skiena, Lecture Notes ...
A New Generalized Data Stacking Programming (GDSP) Model Hala Elhadidy, Rawya Rizk

Hassan T. Dorrah

Electrical Engineering Department, Port Said University, Port Said, Egypt [email protected], [email protected]

Electrical Engineering Department, Cairo University, Giza, Egypt [email protected]

Abstract—Six classes of the stack were recently introduced for describing the system change pathway under varying environment or events “on and above” the normal situations. Not only can stack store items at the top, but also can store items at the bottom, side(s), as outer ring, inner ring or randomly. The purpose of this paper is to develop the mathematical foundations and their programming algorithms for the necessary handling of the insertion and deletion operations in each of six generalized stacks. A Generalized Data Stacking Programming(GDSP) model is proposed to simulate what happen in the real world. GDSP uses the growing/shrinking matrix based implementation which is a generalization of the known array representation to be another way of implementing the stack.

unlimited capacity [10].Stack has lots of applications in many areas e.g. Function Calls; When a subroutine calls another subroutine, it stores its register contents by pushing the contents into a stack. The new function uses the registers. When the program returns to the old function, pop the stack. Data may stay in the stack for a long time [11-15]. Bounded stacks, where we know the maximal size in advance, are readily implemented with bounded arrays. For unbounded stacks we can use unbounded arrays. Array implementation of the stack was traditionally used to represent the various operations done to the stack in its traditional form. The stack was redefined in [1] in more general way that can be connected to the real world. The stack is not only one class but as illustrated in Fig. 1, it has more than one class depending on the place where a new element is inserted. The insertion can be not only to the top as the traditional stack (class S1), but also could be to the bottom (class S2), one or both sides (class S3), the outer ring of the object (class S4), the inner ring of the object (class S5), or randomly anywhere (class S6). Generalized Data Stacking Programming (GDSP) model is defined in this paper. The proposed model is using matrix implementation which replaces array implementation to represent the stack in its new classes. 3D matrix represents the 3D object in which the stack represents. This method is based on growing (or shrinking) matrices which is equivalent to insert (or remove) items to (from) the stack.

Index Terms—Generalized Data Stacking Programming (GDSP) Model, growing (shrinking) matrices, matrix implementation, mathematical representation, stacking.

I. INTRODUCTION Anything in our life can be memorized or accumulated in different types of forms (data, stones, fats, animal decays, layers…etc.) in different types of storage containers (our brains, our body, soil, sea...etc.). Papers, books and photos are stored in a pile form. The dental plaque [2] is another example of the pile form. Seismic activities are the activities which can add or remove items from the bottom of the earth. Also there are many types of marine algae [3] that are found naturally in the bottom of blue water. The soil is very important to our life and its deposits can be from above and bottom. Decayed animals and plant remains in the soil affect its fertility. Tree trunk diameter usually changes during the day and the night and along full year with both a rainy and a dry season [4]. Some people are suffering from different diseases. Atherosclerosis is a disease that causes more death and disability than any other disease and is known by several other names - cholesterol deposits in the arteries[5-8].A kidney stone is a hard, crystalline mineral material formed within the kidney or urinary tract. Formation of a stone in the body is formed by accumulating the sand randomly [9]. All the previous are examples of stacking forms that we classify them into 6 different classes and combined into Fig.1.Stacking is the arrangement of items where the item most recently arrived at the stack is the first to be retrieved. The infinite stacking property will permit accommodating apparently any number of elements in the stack due to its

(a)

(d)

(b)

(c)

(e)

(f)

Fig. 1.Examples of the stack from our life.

The paper is organized as follows. Section II presents the stack classes and how these classes represent physical

78

systems. Section III presents the stack classes in more detail having the mathematical presentation and flow chart to clarify the idea of these classes based on the proposed matrix implementation. Section IV presents conclusions and the future work.

B. Model assumptions 1- M[m,n,k] is the stack matrix of the 3 dimensions m x n x k where m, n and k are integer constants. M represents a file, figure, picture…etc. 2- A[m,n,k] or B[m,1,k] is a storage matrix and sometimes is the output matrix. 3- All the elements of the stack are non-negative real numbers. 4- The element we wish to insert is e.We want to insert it at (a,b) where a ≤ m and b ≤ n. 5- 0 means empty space. 6- Adding or removing a column is done from the left then right (if the two sides are considered). 7- Adding or removing a ring (inside or outside the object) is done in the following sequence; left, top, right then bottom.

II. DEFINITION OF GENERALIZED STACK CLASSES System changes in real life may be logically conceived to be internally stacked in the form of a new sub-layer arranged in some form in relations to the other preceding existing layer(s). Such new sub-layers represent the incremental physical changes or alternations imposed on the original system basic layer(s) due to the induced effects. There are six classes of stack as defined and mentioned in [1] and Fig.2. III. GDSP MODEL

C. Class S1(Above, top or upward) Traditionally, the stack is found in a pile form which is the first class S1. Obviously, this class can be found in many applications (e.g. storing data in the computer memory, the dental plaque as in Fig.1-a). Adding (S1+) or removing (S1-) an item from the stack is done from above only as seen in Fig.3 A and B. Using the matrix representation, the matrix represents the pile (M(mxn)) and adding an item at the top of the pile means adding a row at the top of the matrix which makes the matrix grow (M(m+1,n)). Removing an item from the top of the pile means removing a row from the top of the matrix which makes the matrix shrink; M(m-1,n). Mathematically, for adding an element at the top of the matrix, we have the following:

The proposed model depends on the idea of simulating what happen in the physical world where any object can be a stack. Also our model depends on the matrix implementation which is in turn depends on the idea of growing or shrinking matrices. A. Growing Matrix Implementation Approach: Traditionally, the object is represented by an array where the insertion or deletion is done at one side of the array [1015]. As the definition of the stack is become wider and more general than before, it is needed to find more general way for implementation. The growing matrix implementation is an extension to the array one. The insertion is done by adding an element, (a) row(s), (a) column(s) or both depending on the class of the stack making the matrix grow (growing matrix). While the deletion is done by removing an element, (a) row(s), (a) column(s) or both depending on the class of the stack making the matrix shrink (shrinking matrix).The following subsections describe in detail the matrix implementation of each class but first the model assumptions for the proposed model are presented.

A(c+1,r,k)=M(c,r,k) r,c,k ϵ Ⱬ : k=:1→q & r =:1→ n & c =:1→m (1)A(1,r,k)= e : k=:1→q & r =:1→ n (2) where A is the new matrix (m+1,n,q). For deleting the first row of the matrix:B(c-1,r,k)=M(c,r,k) r,c,k ϵ Ⱬ : k=:1→q& r =:1→ n & c =:2→m(3)B is the new matrix (m-1,n,q)

Basic Stack (1)

Adding 2 rows (3)

Adding a row (2) (2)

Adding 3 rows (4)

Fig. 3A.Inserting operation on stack according to S1.

Fig. 2.The different classes of the stack [1].

79

Start

Start

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element

Inputs: 3D Matrix M(m,n,q) represents the object

For each layer, row and column Move the first row of M to the second row of a new matrix A, the second row of M to the third row of A ...etc leaving the first row of A empty.

Start

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element

Inputs: 3D Matrix M(m,n,q) represents the object

For each layer and column, add a new element e to the new row at the bottom of M

For each layer, row and column Move the second row of M to be the first row of the new matrix B, the third row of M to be the second row of B ...etc

For each layer, delete the last row of M

Output: Matrix M(m+1,n,q) which equal to the original matrix after adding a new row at the bottom

Fill the first row of A with the value e Output: Matrix B(m-1,n,q) which equal to the original matrix M after deleting the first row

Output: Matrix A(m+1,n,q) which equal to the matrix M after adding a new row at the beginning

Start

Output: Matrix M(m-1,n,q) which equal to the original matrix M after deleting last row

End

Growing matrix (Insert S2+)

End

Shrinking matrix (Delete S2-)

Fig.4B. S2: Flow chart for inserting an item or deleting it. End

End

Insert

E. Class S3 (Single, double or all sided –external) The example of the soil (Fig.1-c) which the deposits can be done in both sides is an example of the third class of the stack (S3) in which the insertion (S3+) or deletion (S3-) is done to a side or the two as described in Fig.5A, B and C. Applying the matrix method; adding an item using the third class means adding a column to the left of the matrix then adding another column to the right and increase the size by two (growing matrix M(m,n+2)) if the insertion is done in both sides. If the insertion is done in only one side (the left), the increment will be by one (M(m,n+1)). While removing an item means removing a column from the left then right and decrement the size by two (shrinking M(m,n-2)) in the case of two sides. However the left column is removed only and decrement by one if the deletion is done to one side (M(m,n-1)). Mathematically, if the insertion is done in one side: A(c,r+1,k)=M(c,r,k) r,c,k ϵ Ⱬ : k=:1→q & r =:1→ n & c =:1→m (7)

Delete

Fig.3B . S1: Flow chart for inserting an item or deleting it.

D. Class S2 (Beneath, bottom and downward) There are some applications that can store items under objects (e.g. seismic activities and growing the marine algae under water). This kind of applications where the insertion or deletion is done at the bottom is class S2 as seen in Fig.4 A and B. Applying the matrix method, adding an item means adding a row at the bottom of the matrix and increment the size by one (growing M(m+1,n)). While removing an item means removing a row from the bottom and decrement the size by one (shrinking M(m-1,n)). Mathematically; A(c,r,k)=M(c,r,k) k=:1→q & r =:1→ n& c =:1→m r,c,k ϵ Ⱬ : (4) k=:1→q &

A(m+1,r,k)= e

r =:1→ n

(5)

A(c,1,k)= e : k=:1→q & c =:1→ m (8) A is the new matrix (m,n+1,q).

where A is the new matrix (m+1,n,q) For deleting the last row:

If the insertion is done in both sides:

B(c,r,k)=M(c,r,k) r,c,k ϵ Ⱬ : k=:1→q & & c =:1→m-1 (6)

A(c,r+1,k)=M(c,r,k) r,c,k ϵ Ⱬ : k=:1→q & =:1→m (7')

r =:1→ n

A(c,1,k)= A(c,n+2,k)= e : k=:1→q & where A is the new matrix (m,n+2,q).

Adding a row Basic Stack

where

(2)

r =:1→ n & c =:1→ m (8')

(1)

If the deletion is done in one side: Adding 2 rows

Adding 3 rows

(3)

(4)

B(c,r,k)=M(c,r+1,k) r,c,k ϵ Ⱬ : k=:1→q & c =:1→m (9)

r =:1→ n-1 &

If it is done on both sides: Fig. 4A.Inserting operation on stack according to S2

B(c,r,k)=M(c,r+1,k) r,c,k ϵ Ⱬ : k=:1→q & c =:1→m (9')

80

r =:1→ n-2 &

c

(2)

(3)

Adding 6 sides

Adding 4 sides

Adding 2 sides

Basic Stack (1)

outer layer as seen in Fig.6A and B. Applying the growing matrix method, adding an item using the fourth class means adding a column to the left then a row up then column to the right and a row to the bottom of the matrix and increment the size as follow (growing M(m+2,n+2)). While removing an item means removing a column from the left then a row from up then column from the right and a row from the bottom of the matrix and decrement the size as follow (shrinking M(m2,n-2)). Mathematically;

(4)

Fig. 5A. Inserting operation on stack according to S3 One side (Insert S3+) Start

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element

For each layer, row and column Move the first column of M to the second column of a new matrix A, the second column of M to the third column of A ...etc leaving the first column of A empty.

Fill the first column of A with the value e

Output: Matrix A(m,n+1,q) which equal to the matrix M after adding a new column at the left

One side (Delete S3-)

A(c+1, r+1,k)=M(c,r,k):

Start

&

k=:1→q &

c =:1→m

r =:1→ n (10)

Inputs: 3D Matrix M(m,n,q) represents the object Basic Stack

For each layer, row and column Move the second column of M to be the first column of the new matrix B, the third column of M to be the second column of B ...etc

(1)

(3)

(2)

Output: Matrix B(m,n-1,q) which equal to the original matrix M after deleting the first column

(4)

End End

Fig. 6A.Inserting operation on stack according to S4.

Fig. 5 B. S3: Flow chart for inserting an item or deleting it in one side. Two sides (Insert S3+) Start

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element

For each layer, row and column Move the first column of M to the second column of a new matrix A, the second column of M to the third column of A ...etc leaving the first column of A empty.

Fill the first column of A with the value e and make a new column at the end with the value e for each layer

Output: Matrix A(m,n+2,q) which equal to the matrix M after adding two new columns at the left and right

Start

Two sides (Delete S3-)

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element

Start

Inputs: 3D Matrix M(m,n,q) represents the object

For each layer, row and column Move each (i,j) element of M to (i+1,j+1) element of a new matrix A leaving the first row and the first column of A empty.

For each layer, row and column Move the second column of M to be the first column of the new matrix B, the third column of M to be the second column of B ...till the column n-1

Fill the first column of A with the value e and make a new column at the end with the value e for each layer

Output: Matrix B(m,n-2,q) which equal to the original matrix M after deleting the first and the last column

Start

Inputs: 3D Matrix M(m,n,q) represents the object

For each layer, row and column beginning from the second row and second column, Move each (i,j) element of M to (i-1,j-1) element of a new matrix B .

Fill the first row of A with the value e and make a new row at the end with the value e for each layer

End Output: Matrix A(m+2,n+2,q) which equal to the matrix M after adding an outer ring around it.

End

Fig. 5C.S3:Flow chart for inserting an item or deleting it in two sides.

Output: Matrix B(m-2,n-2,q) which equal to the matrix M after deleting the outer ring around it.

End

F. Class S4 (Outward, outer or coating) Furthermore the example of the growing of tree trunk(Fig. 1-d) is an example of the fourth class of the stack (S4) in which the insertion (S4+) or deletion (S4-) is done to the four sides like adding a ring around the object or removing the

End

Growing matrix (Insert S4+)

Shrinking matrix (Insert S4-)

Fig.6 B. S4: Flow chart for inserting an outer ring or deleting it.

81

A(c,1,k)= e &

where e is the new element : k=:1→q

c =: 1→m+1

Start

Start

Inputs: 3D Matrix M(m,m,q) represents the object and e the new added element

Inputs: 3D Matrix M(m,m,q) represents the object.

Check for the first empty space

Check for the first empty space

Fill the inner ring with the element e beginning with the left column, top row, right column then bottom row

Clear the content of the inner ring starting with the value before the first empty space beginning with the left column, top row, right column then bottom row

Output: Matrix M(m,m,q) which equal to the original matrix after adding an inner ring around the empty space.

Output: Matrix M(m,m,q) which equal to the original matrix after deleting the inner ring around the empty space.

End

End

(add a left column) (11)

A(1,r,k) = e : k=:1→q& r =:2→ n+2 (up row) (12)A(c,6,k) = e : k=:1→q& c =:2→m+2 (right column) (13) A(5,r,k) = e : k=:1→q&

r =:1→ n+1( bottom row)(14)

A (m+2, n+2,q) is the new produced matrix. The deletion is done by removing the outer ring of the matrix M resulting the new matrix B (m-2,n-2, q) B(c-1,r-1,k)=M(c,r,k) : k=:1→q& &

c =:2→m-1

r =:2→ n-1 (15)

G. Class S5 (Inward, inner or lining) The example of the cholesterol deposits in the arteries (Fig. 1-e) is an example of the fifth class of the stack (S5) in which the insertion (S5+) or deletion (S5-) is done inside the object beginning from the middle going toward the wall leaving the middle always empty as seen inFig.7A. It is like adding or removing an inner ring as describe in the flow chart in Fig.7B. Applying the matrix method, adding an item using the fifth class means adding a column to the left then a row up then column to the right and a row to the bottom of the matrix and increment the size in the case of the infinite storage as follow (growing M(m+2,m+2)) or keep the size as it is like the case of the cholesterol deposits till it blocks the hole inside. To do so, it is necessary for M to be a square matrix (m,m) with an empty center. While removing an item means removing a column from the left then a row from up then column from the right and a row from the bottom of the empty space that assumed inside the matrix and decrement the size (shrinking M(m-2,n-2)).

Delete (S5-)

Insert (S5+)

Fig.7 B. S5: Flow chart for inserting an inner ring or deleting it.

Mathematically; assume that M is a square matrix mxm where m is odd number and the vital condition to resume m+1 m+1 working with this stack model is M( , )=0 which means 2

m−i

m−i

m−i

2

2

M(c, ) = e c= 2 (add left column) m−i

M( ,r) = e 2 (upper row)

m−i

r=

2

m−i

M(c,m- +1) = e 2 (right column)

→ m-

+1 → m-

c=

m−i

M(m- +1,r) = e 2 (lower row) Basic Stack with a hole inside it (1)

m−i m−i

m−i 2

+1 (16)

m−i 2

+1 (17)

+1→ m-

m−i 2

m−i

m−i

2

2

r=

+1→ m-

+1 (18)

(19)

Deleting from a matrix according to S5 is done as follow:

(2)

i odd number=:-1→m-2 check if M( stop searching return r=c= m−i

(4)

m−i

m−i

82

m−i 2

m−i

2

2

+1 → mm−i 2

,

2

+1

m−i

M(c,m- +1) = 0 c= 2 (remove right column)

2

) ≠ 0 when

.

2

m−i

M( ,r) = 0 r= 2 (remove upper row)

Fig. 7A.Inserting operation on stack according to S5.

m−i m−i

m−i

M(c, ) = 0 c = → m2 2 (remove left column) (3)

2

that the center of this square has to be empty. If M( , )=0 2 2 i odd number=:-1→m-2; beginning from inside going m−i m−i outside. Stop this searching for at last M( , )=0. Take i 2 2 calculated and resume.

(20)

+1

+1→ m-

m−i 2

(21)

+1

(22)

m−i

m−i

m−i

2

2

M(m- +1,r) = 0 r = 2 (remove lower row)

+1→ m-

removing an element then rearranging the matrix horizontally or vertically without removing column or row but leaving a space at the end of the column or the row as follow:

(23)

H. Class S6 (Within, in-between, or scattered) The example of the kidney stone (Fig. 1-f) is sixth class of the stack (S6) in which the insertion (S6 +) or deletion (S6-) is done by adding it to a specific place or removing it from a specific place. Applying the matrix method, adding an item using the sixth class means adding an element at position (a,b) then rearranging the matrix either horizontally or vertically according to the application. Arranging either ways is done to the nearest wall to the new element; arranging horizontally if the position of the new element is near the right is done by adding a new column to the right then pushing right the elements found in row a and column b+1 till the new column but if the position is near the left, add the new column to the left to be the first column then push the elements from the new position till the second column in the row a are pushed one position to the left as in Fig.8A and B. While removing an item means deleting it then rearranging the matrix horizontally without removing any columns but leaving a space at the end of the column. Mathematically; Adding e at (a,b) in matrix M horizontally is done as follow: A(c,r,k) =M(c,r,k) k=: 1 → q&r=: 1→ n & c=: 1 → m where A is a storage matrix (24) If b ≥m⁄2 then M(a,r,k) = A(a,r-1,k) k=: 1 → q&r=: b → n+1 a,b,r,kϵ Ⱬ (25) Else { M(c,r,k) = A(c,r-1,k) k=: 1 → q&r=: b → n+1 &c =: 1→ m (25') And M(a,r,k) = A(a,r+1,k) k=: 1 → q&r=: 1 → b-1 a,b,c,kϵ Ⱬ} (26)

Original Stack

Fig. 8A: Inserting operation on stack according to S6 with horizontally rearrangement. Start Start

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element to (a,b) position

No

Inputs: 3D Matrix M(m,n,q) represents the object

Yes

The position (a,b) is near the left??

Add an empty column at the right and move the elements in a row from the b position till the end one position right

No

The position (a,b) is near the left??

Add an empty column at From the b column in the a the left and move the row till the end of the row, elements in a row from first move the elements to the column till the a position left. Mark the last element in one position left that column empty.

Add e to the (a,b) position

Output: Matrix M(m,n+1,q) which equal to the original matrix after adding the new element e at (a,b)

Yes

From the Beginning of the a row till b column, move the elements right. Mark the first element in that row as empty.

Output: Matrix M(m,n,q) which equal to the original matrix after deleting (a,b) element

End

End

Delete (S6-) Horizontally

In both cases M(a,b,k) = e

k=: 1 → q

(27)

Insert (S6+) Horizontally

For deleting an element at (a,b) then rearrange the stack horizontally; A(c,r,k) =M(c,r,k) k=: 1 → q&r=: 1→ n & c=: 1 → m(28)where A is a storage matrix If b ≥ n⁄2 then {M(a,r,k) = A(a,r+1,k) k=: 1 → q&r=: b → n-1 a,b,c,kϵ Ⱬ (29) And M(a,n,k) =0} Else {M(a,r+1,k) = A(a,r,k) k=: 1 → q&r=: 1 → b-1 r,a,kϵ Ⱬ (29') And M(a,1,k) =0 }

Fig. 8B. S6 with horizontally rearrangement in both inserting and deleting.

If we need to add the element e at position (a,b); A(c,r,k) =M(c,r,k) k=: 1 → q&r=: 1→ n & c=: 1 → m(30)where A is a storage matrix If a ≥ m⁄2 then M(c,b,k) = A(c-1,b,k) k=: 1 → q&c=: a → (30) m+1 a,b,c,kϵ Ⱬ (31) Else{ M(c,r,k) = A(c-1,r,k) 1→ n c,r,kϵ Ⱬ And M(c,b,k) = A(c+1,b,k) a,b,c,kϵ Ⱬ } = e k=: 1 → q(33)

If the arrangement is vertically, add a new row at the bottom if the position of the new element is near the bottom then push down the elements found in column b and row a+1 till the last row. But if the new position is near the top of the object (matrix), add a new row at the top and push the elements beginning from the new element to the second row in the same column (b) one position up as seen in Fig.9A and Fig.9B shows the flow chart. While removing an item means

k=: 1 → q& c=: a → m+1 &r=: (31') k=: 1 → q&c=: 1 → a-1 (32)In both cases M(a,b,k)

For deleting an element at (a,b) then rearrange the stack vertically;

Original Stack

83

REFERENCES Fig. 9A.Inserting operation on stack according to S6 with vertically rearrangement.

[1] Hassen T. Dorrah. Supplement to “Consolidity: Moving opposite to built-as-usual practices.” Elsevier Ain Shams Engineering Journal (2013), doi:10.1016/j.asej.2013.2.009. URL address: http://www.sciencedirect.com/science/article/pii/S2090447913 000348. [2] J.S. Nield-Gehrig," Dental Plaque Biofilms," Journal of Practical Hygiene, 2005 [3] http://www.aquaticcommunity.com/algae-ontrol/marine.php, 2004. [4] Y. Aimene, C. Stah, D. Bonal and B. Thibaut," Modelisation of the trunk daily diameter variation during wet season in a neotropical rain forest of French Guiana," 6th Plant Biomechanics Conference – Cayenne, November 16 – 21, 2009. [5] Dr. Mercola,"The Cholesterol Myth that is Harming Your Health," article in Mercola.com, http://articles.mercola.com/sites/articles/archive/2010/08/10/m aking-sense-of-your-cholesterol-numbers.aspx, August 10, 2010. [6] Dr. Mohamed Abo Dawla, “Treatment: Medical Magazine in Arabic" http://www.al-3laj.com./3 , page 3, May 1st,2012. [7] Mayo clinic staff, "Cholesterol levels: What numbers should you aim for?,"http://www.mayoclinic.com/health/cholesterollevels/CL00001 , sep. 12, 2012. [8] "Cholesterol management guide, "http://www.webmd.boots.com/cholesterolmanagement/guide/understanding-cholesterol-problems-basics, May 11, 2013. [9] Article in medicine, "Kidney Stone," http://www.medicinenet.com/kidney_stone/page3.htm, 14 May 2013. [10] Steve Skiena, Lecture Notes -- Data Structures http://www.cs.sunysb.edu/~skiena/214/lectures, 11 September 15:55:14(37) EDT 1997. [11] K. Mehlhorn and P. Sanders," Algorithms and Data Structures," The Basic Toolbox, p.p 295, 2007. [12] B. R. Preiss," Data Structures and Algorithms with ObjectOriented Design Patterns in C++," Published by John Wiley & Sons ISBN 0471-24134-2, 1997. http://www.brpreiss.com/books/opus4/html 22/4/2013 [13] "Algorithms and Data Structure; Table of Contents", http://www.cs.auckland.ac.nz/~jmor159/PLDS210/ds_ToC.ht ml 26/4/2013. [14] C. A. Shaffer," A Practical Introduction to Data Structures and Algorithm Analysis Third Edition (C++ Version)," http://people.cs.vt.edu/~shaffer/Book, January 19, 2010. [15] Student Support Forum, Wolfram, http://forums.wolfram.com/student-support/topics/17332, 5/5/2013 at 11:45 pm.

Start Start

Inputs: 3D Matrix M(m,n,q) represents the object and e the new added element to (a,b) position

No

Inputs: 3D Matrix M(m,n,q) represents the object

Yes

The position (a,b) is near the top??

Add an empty row at the bottom and move the elements in b column from the a position till the end one position down

Add an empty row at the top and move the elements in b column from first row till the a position one position up

No

The position (a,b) is near the top??

From the a row in the b column till the end of the column, move the elements row up. Mark the last element in the column empty.

Yes

From the Beginning of the b column till a row, move the elements row down. Mark the first element in the column as empty.

Output: Matrix M(m,n,q) which equal to the original matrix after deleting (a,b) element

Add e to the (a,b) position

Output: Matrix M(m+1,n,q) which equal to the original matrix after adding the new element e at (a,b)

End

End

Delete (S6-) vertically Insert (S6+) vertically

Fig. 9B.S6 with vertically rearrangement in both inserting and deleting.

A(c,r,k) =M(c,r,k) k=: 1 → q&r=: 1→ n & c=: 1 → m(34)where A is a storage matrix If a ≥ m⁄2 then { M(c,b,k) = A(c+1,b,k) → m-1 a,b,c,kϵ Ⱬ (35)

k=: 1 → q&c=: a

And M(m,b,k) =0} Else { M(c+1,b,k) = A(c,b,k) k=: 1 → q&c=: 1 → a-1 Ⱬ (35')

c,b,kϵ

And M(1,b,k) =0 } IV. CONCLUSIONS Since there are different applications of the stack in our physical world, it is important to give more attention to the stack. In this paper, a new Generalized Data Stacking Programming (GDSP) Model is proposed where the idea of the stack is discussed. This idea is extended in this model to be more than a pile kind. It is shown that the GDSP Model can effectively handle the stack in its six classes which represents what occur in the real life to any object. The growing matrix implementation is proposed to model the six classes of the stack. The mathematical models and algorithms for all the six classes are then successfully tested using Matlab examples. More efforts should be done in this work; for example, focusing on real life applications and apply the proposed model numerically using real observation data. These applications could cover many fields such as life sciences, medicine, biology, engineering..etc.

84

Suggest Documents