Patent US5488717A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5488717A Expired / Lapsed US ⏱️ 0.0 years remaining

MTree data structure for storage, indexing and retrieval of information

Assignee: COTUIT CAPITAL LLC
•
Filing: 1992-07-06
•
Granted: 1996-01-30
•
Expires: 2012-07-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Data storage space and data access time are significantly decreased by utilizing a tree structure to store data in memory. Only one copy of each data element common to different data units is stored. Each data element is stored in a node that has a next pointer and an alternate pointer. The next pointer points to a list of alternatives for the next sequential element of the data unit. The alternate pointer defines that list of alternatives. Thus, a progression of next pointers and alternate pointers corresponds to a unique data unit. Associated with each data unit is one or more identifiers, which tie the data unit to data units in another trees or to external objects. The last alternate pointer in an alternative list points back to the preceding element of the data unit in order to reconstruct a data unit from the identifier. Nodes in memory that are not currently being used in the tree are linked together to form a list of free nodes.

Inventors

  • 👤 Seann Gibson
  • 👤 Kerr Gibson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 08:27
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/30; G06F16/31; G06F16/316; G06F16/322; Y; Y10; Y10S; Y10S707/00; Y10S707/912; Y10S707/917; Y10S707/99931; Y10S707/99932

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 243 words
In computation means including processor means and memory means for executing digital programs, said programs including coded instructions and coded data, the improvement wherein: (a) said processor means establishes in said memory means a tree of nodes that are interrelated by a distribution of pointers; (b) said tree of nodes including predecessor nodes and successor nodes; (c) said distribution of pointers including progressions of next pointers and alternate pointers; (d) said processor means accessing progressions of said nodes in correspondence with progressions of elements of said coded data; (e) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate one or more other progressions of nodes within said tree of nodes, (2) to permit one or more other progressions of nodes from said tree of nodes to locate said progression of nodes, (3) to locate one or more external objects, and (4) to permit one or, more external objects to locate said progression of nodes; (f) selected elements of different data units in selected progressions of successor nodes being different for different data units in order to uniquely identify said different data units; and (g) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said processor means.
Claim 2
Dependent Claim 243 words
In computation means including processor means and memory means for executing digital programs, said programs including coded instructions and coded data, the improvement wherein: (a) said processor means establishes in said memory means a tree of nodes that are interrelated by a distribution of pointers; (b) said tree of nodes including predecessor nodes and successor nodes; (c) said distribution of pointers including progressions of next pointers and alternate pointers; (d) said processor means accessing progressions of said nodes in correspondence with progressions of elements of said coded data; (e) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate one or more other progressions of nodes within said tree of nodes, (2) to permit one or more other progressions of nodes from said tree of nodes to locate said progression of nodes, (3) to locate one or more external objects, and (4) to permit one or, more external objects to locate said progression of nodes; (f) selected elements of different data units in selected progressions of successor nodes being different for different data units in order to uniquely identify said different data units; and (g) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said processor means.
Claim 3
Dependent Claim 40 words
The computation means of claim 1 wherein: each node includes a next pointer and an alternate pointer; and said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements.
Claim 4
Dependent Claim 15 words
The computation means of claim 1 wherein a progression of alternate pointers records a list.
Claim 5
Dependent Claim 38 words
The computation means of claim 1 wherein said tree of nodes contains a linked list of free nodes, said processor means accessing said linked list of free nodes in order to add nodes to said progressions of nodes.
Claim 6
Dependent Claim 24 words
The computation means of claim 1 wherein the final element of each unit of said data is in a unique position in said tree.
Claim 7
Dependent Claim 230 words
A computation means including processor means and memory means for executing digital programs, said programs including coded instructions and coded data, the improvement wherein: (a) said processor means establishes in said memory means a plurality of trees of nodes that are interrelated by a plurality of distributions of pointers; (b) each of said trees of nodes including predecessor nodes and successor nodes; (c) each of said distributions of pointers including progressions of next pointers and alternate pointers; (d) said processor means accessing progressions of said nodes in correspondence with progressions of elements of said coded data; (e) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate a progression of nodes in one or more other of said trees and (2) to permit one or more progressions of nodes of other of said tree of nodes to locate said progression of nodes; (f) selected elements of different data units in selected progressions of successor nodes being different for different data units in order to uniquely identify said different data units; and (g) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by sail processor means.
Claim 8
Dependent Claim 230 words
A computation means including processor means and memory means for executing digital programs, said programs including coded instructions and coded data, the improvement wherein: (a) said processor means establishes in said memory means a plurality of trees of nodes that are interrelated by a plurality of distributions of pointers; (b) each of said trees of nodes including predecessor nodes and successor nodes; (c) each of said distributions of pointers including progressions of next pointers and alternate pointers; (d) said processor means accessing progressions of said nodes in correspondence with progressions of elements of said coded data; (e) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate a progression of nodes in one or more other of said trees and (2) to permit one or more progressions of nodes of other of said tree of nodes to locate said progression of nodes; (f) selected elements of different data units in selected progressions of successor nodes being different for different data units in order to uniquely identify said different data units; and (g) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by sail processor means.
Claim 9
Dependent Claim 40 words
The computation means of claim 6 wherein: each node includes a next pointer and an alternate pointer; and said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements.
Claim 10
Dependent Claim 15 words
The computation means of claim 6 wherein a progression of alternate pointers records a list.
Claim 11
Dependent Claim 40 words
The computation means of claim 6 wherein each of said trees of nodes contains a linked list of free nodes, said processor means accessing said linked list of free nodes in order to add nodes to said progressions of nodes.
Claim 12
Dependent Claim 23 words
The computation means of claim 6 wherein the final element of each said data unit is in a unique position in said tree.
Claim 13
Dependent Claim 287 words
A computation system comprising: (a) an architecture including a central processing unit, a memory means and an operating system; (b) said operating system being programmed in a machine code language; (c) a linker for combining a first input and a second input; (d) a text editor for said operating system to input data units composed of data elements for generation of a source code; (e) said source code being in a higher level language than said machine code language; (f) said central processing unit establishing in said memory means a plurality of trees of nodes that are interrelated by a plurality of distributions of pointers; (g) each of said trees of nodes including predecessor nodes and successor nodes; (h) each of said distributions of pointers including progressions of next pointers and alternate pointers; (i) said central processing unit accessing progressions of said nodes in correspondence with progressions of elements of coded data; (j) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate a progression of nodes in one or more other of said trees and (2) to permit one or more progressions of nodes of other of said tree of nodes to locate said progression of nodes; (k) selected elements of different data units in selected progressions of successor nodes being different for different data units in order to uniquely identify said different data units; and (l) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said central processing unit.
Claim 14
Dependent Claim 287 words
A computation system comprising: (a) an architecture including a central processing unit, a memory means and an operating system; (b) said operating system being programmed in a machine code language; (c) a linker for combining a first input and a second input; (d) a text editor for said operating system to input data units composed of data elements for generation of a source code; (e) said source code being in a higher level language than said machine code language; (f) said central processing unit establishing in said memory means a plurality of trees of nodes that are interrelated by a plurality of distributions of pointers; (g) each of said trees of nodes including predecessor nodes and successor nodes; (h) each of said distributions of pointers including progressions of next pointers and alternate pointers; (i) said central processing unit accessing progressions of said nodes in correspondence with progressions of elements of coded data; (j) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate a progression of nodes in one or more other of said trees and (2) to permit one or more progressions of nodes of other of said tree of nodes to locate said progression of nodes; (k) selected elements of different data units in selected progressions of successor nodes being different for different data units in order to uniquely identify said different data units; and (l) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said central processing unit.
Claim 15
Dependent Claim 40 words
The computation system of claim 11 wherein: each node includes a next pointer and an alternate pointer; and said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements.
Claim 16
Dependent Claim 15 words
The computation system of claim 11 wherein a progression of alternate pointers records a list.
Claim 17
Dependent Claim 41 words
The computation system of claim 11 wherein each of said trees of nodes contains a linked list of free nodes, said central processing unit accessing said linked list of free nodes in order to add nodes to said progressions of nodes.
Claim 18
Dependent Claim 23 words
The computation system of claim 11 wherein the final element of each said data unit is in a unique position in said tree.
Claim 19
Dependent Claim 337 words
A computation means including processor means and memory means for executing digital programs, said programs including coded instructions and coded data, the improvement wherein: (a) said processor means establishes in said memory means a tree of nodes that are interrelated by a distribution of pointers; (b) said tree of nodes including predecessor nodes and successor nodes; (c) said distribution of pointers including progressions of next pointers and alternate pointers; (d) said processor means accessing progressions of said nodes in correspondence with progressions of elements of said coded data; (e) said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements; (f) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate one or more other progressions of nodes within said tree, (2) to permit one or more other progressions of nodes from said tree to locate said progression of nodes, (3) to locate one or more external objects, and (4) to permit one or more external objects to locate said progression of nodes; (g) selected elements of different data in selected progressions of successor nodes being different for different data in order to uniquely identify said different data; (h) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said processor means; (i) each node including at least a next pointer and at least an alternate pointer; (j) said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements of said coded data; (k) said elements of said coded data being selected from the class consisting of bits and bytes; and (l) said coded data being selected from the class of data types consisting of strings, booleans, reals and integers.
Claim 20
Dependent Claim 337 words
A computation means including processor means and memory means for executing digital programs, said programs including coded instructions and coded data, the improvement wherein: (a) said processor means establishes in said memory means a tree of nodes that are interrelated by a distribution of pointers; (b) said tree of nodes including predecessor nodes and successor nodes; (c) said distribution of pointers including progressions of next pointers and alternate pointers; (d) said processor means accessing progressions of said nodes in correspondence with progressions of elements of said coded data; (e) said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements; (f) each of said progressions of nodes being associated with at least one index, wherein said index gives said progression of nodes the means (1) to locate one or more other progressions of nodes within said tree, (2) to permit one or more other progressions of nodes from said tree to locate said progression of nodes, (3) to locate one or more external objects, and (4) to permit one or more external objects to locate said progression of nodes; (g) selected elements of different data in selected progressions of successor nodes being different for different data in order to uniquely identify said different data; (h) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said processor means; (i) each node including at least a next pointer and at least an alternate pointer; (j) said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements of said coded data; (k) said elements of said coded data being selected from the class consisting of bits and bytes; and (l) said coded data being selected from the class of data types consisting of strings, booleans, reals and integers.
Claim 21
Dependent Claim 241 words
A computation process for application to processor means and memory means for executing digital programs, said programs including coded instructions and coded data, said process including as steps: (a) establishing in said memory means by said processor means a tree of nodes that are interrelated by a distribution of pointers; (b) said tree of nodes including predecessor nodes and successor nodes; (c) said distribution of pointers including progressions of next pointers and alternate pointers; (d) accessing by said processor means progressions of said nodes in correspondence with progressions of elements of said coded data; (e) associating with each of said progressions of nodes at least one index, wherein said index gives said progression of nodes the means (1) to locate one or more other progressions of nodes within said tree, (2) to permit one or more other progressions of nodes from said tree to locate said progression of nodes, (3) to locate one or more external objects, and (4) to permit one or more external objects to locate said progression of nodes; (f) selected data elements of different data in selected progressions of successor nodes being different for different data in order uniquely identify said different data; and (g) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said processor means.
Claim 22
Dependent Claim 241 words
A computation process for application to processor means and memory means for executing digital programs, said programs including coded instructions and coded data, said process including as steps: (a) establishing in said memory means by said processor means a tree of nodes that are interrelated by a distribution of pointers; (b) said tree of nodes including predecessor nodes and successor nodes; (c) said distribution of pointers including progressions of next pointers and alternate pointers; (d) accessing by said processor means progressions of said nodes in correspondence with progressions of elements of said coded data; (e) associating with each of said progressions of nodes at least one index, wherein said index gives said progression of nodes the means (1) to locate one or more other progressions of nodes within said tree, (2) to permit one or more other progressions of nodes from said tree to locate said progression of nodes, (3) to locate one or more external objects, and (4) to permit one or more external objects to locate said progression of nodes; (f) selected data elements of different data in selected progressions of successor nodes being different for different data in order uniquely identify said different data; and (g) selected elements of different data in selected predecessor nodes being common to said different data in order to achieve a high concentration of said data in said memory means and to achieve rapid accessibility of said different data by said processor means.
Claim 23
Dependent Claim 40 words
The computation process of claim 17 wherein: each node includes a next pointer and an alternate pointer; and said progressions of next pointers and alternate pointers are operative to provide progressions of nodes corresponding to selected sequences of said elements.
Claim 24
Dependent Claim 15 words
The computation process of claim 17 wherein a progression of alternate pointers records a list.
Claim 25
Dependent Claim 38 words
The computation process of claim 17 wherein said tree of nodes contains a linked list of free nodes, said processor means accessing said linked list of free nodes in order to add nodes to said progressions of nodes.
Claim 26
Dependent Claim 24 words
The computation process of claim 17 wherein the final element of each unit of said data is in a unique position in said tree.

References Cited (Backward Citations)

US4464650A Cited
US4677550A Cited
US5153591A Cited
US5329405A Cited
US5202986A Cited
US5274805A Cited
US5295261A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-01-29 1999-07-31 2000-01-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-01-29 2003-07-31 2004-01-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-01-29 2007-07-31 2008-01-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag