Yes.

The only accesses are the inserts and the periodic scans/deletes. No ad hoc
updates or deletes.

On Mon, 30 Dec 2024 13:34:02 +0100 Thomas Berg
<00000619bfe39560-dmarc-requ...@listserv.ua.edu> wrote:

:>Is the main issue to avoid loss of storage space? That is, access time is
:>not that important?
:>
:>Thomas
:>
:>Den mån 30 dec. 2024 08:28Binyamin Dissen <
:>00000662573e2c3a-dmarc-requ...@listserv.ua.edu> skrev:
:>
:>> The issue with playing with pointers is that the storage would be lost.
:>> Blocks
:>> have quite variant lengths.
:>>
:>> I guess I could create X areas and release an area when all items in the
:>> area
:>> have been deleted (perhaps transfer items if the remaining count is low).
:>>
:>> On Mon, 30 Dec 2024 06:44:33 +0000 "Farley, Peter"
:>> <0000031df298a9da-dmarc-requ...@listserv.ua.edu> wrote:
:>>
:>> :>Sounds to me like a deque with functions q.popleft() to remove at the
:>> left side, q.append() to add at the right side.  Scan process would be a
:>> series of popleft calls with append for the ones being left for a later
:>> time.
:>> :>
:>> :>E.G. (pseudocode):
:>> :>
:>> :>Scan(q) {
:>> :>    Curlen = len(q)
:>> :>    For qx = 1 to Curlen {
:>> :>        Qitem = q.popleft()
:>> :>        If Qitem is NOT to be removed {
:>> :>            q.append(Qitem)
:>> :>        }
:>> :>        Else { Process removed Qitem }
:>> :>    }
:>> :>}
:>> :>
:>> :>If the “Qitems” are relatively large in size and all at different
:>> addresses then the deque structure (which can be a dynamically sized array)
:>> can just store pointers to the actual items, resulting in not a lot of data
:>> movement at all.
:>> :>
:>> :>FWIW, I have done something like this in COBOL, though not for an
:>> employer.
:>> :>
:>> :>HTH
:>> :>
:>> :>Peter
:>> :>
:>> :>From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On
:>> Behalf Of Binyamin Dissen
:>> :>Sent: Sunday, December 29, 2024 3:51 PM
:>> :>To: IBM-MAIN@LISTSERV.UA.EDU
:>> :>Subject: Ideas of managing a data structure
:>> :>
:>> :>
:>> :>The data structure consists of various items of different lengths. The
:>> items
:>> :>
:>> :>are added serially and periodically the area is scanned where most items
:>> are
:>> :>
:>> :>removed. The remaining items are likely to be removed in a later scan
:>> (with
:>> :>
:>> :>new items).
:>> :>
:>> :>
:>> :>
:>> :>My thought was to have two data areas, and during the scan insert the
:>> :>
:>> :>undeleted items into the alternate area. It will be a bit of data moves
:>> but is
:>> :>
:>> :>simple.
:>> :>
:>> :>
:>> :>
:>> :>Does Knuth talk about such a data structure?
:>>
:>> --
:>> Binyamin Dissen <bdis...@dissensoftware.com>
:>> http://www.dissensoftware.com
:>>
:>> Director, Dissen Software, Bar & Grill - Israel
:>>
:>> ----------------------------------------------------------------------
:>> For IBM-MAIN subscribe / signoff / archive access instructions,
:>> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
:>>
:>
:>----------------------------------------------------------------------
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
Binyamin Dissen <bdis...@dissensoftware.com>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to