Scott on Writing

Musings on technical writing...

An Extensive Examination of Data Structures: Part 6 Available

Part 6 of my extensive examination of data structures is now available.  Part 6 provides a look at sets.  Sets are a construct used to represent an unordered collection of items, and are common in mathematics for describing properties of numbers.  Interestingly, programming languages like Pascal (and its derivatives, Oberon and Modula) provided a set construct in the language.  In fact, there is even a programming language called SETL that offers sets as first-class citizens in the language, just like strings, integers, and Booleans in C# or VB.NET.

Following a discussion of sets, along with examining how to create a Pascal-like set data structure, the article turns to a more common need - efficiently maintaining a collection of disjoint sets.  A collection of sets are said to be disjoint if there are no similar members between the sets.  There are many real-world situations where you might need to maintain disjoint sets.  For example, consider that someone gave you a list of people in a town, where each townsperson provided their father's name (assume no two people share the same name).  You are then tasked with determining who in the town is related to one another.  That is, you should be able to efficiently answer the question, “Is Tim related to Ed?”  The approach to take here is to group the townspeople into disjoint sets, where each disjoint set represents a family tree.  You can then determine if any two individuals are related by determining if they are members in the same set.  This article discusses two data structures that can be used to represent disjoint sets, and how their structure affects the efficiency of those operations being performed upon the sets.

posted on Wednesday, April 07, 2004 7:07 PM

Feedback

No comments posted yet
Title:  
Name:  
Url:
Protected by Clearscreen.SharpHIPEnter the code you see:
Comments   

My Links

Ads Via DevMavens

Archives

Post Categories

 

I am a Microsoft MVP for ASP.NET.
I am an ASPInsider.
<March 2010>
SMTWTFS
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Comment Stats

DayTotal% of Total
Sunday 2056.8%
Monday 42514.1%
Tuesday 51917.2%
Wednesday 55618.4%
Thursday 58019.2%
Friday 54718.1%
Saturday 1886.2%
Total 3020100.0%

Hour1Total% of Total
12:00 AM 782.6%
1:00 AM 812.7%
2:00 AM 682.3%
3:00 AM 822.7%
4:00 AM 692.3%
5:00 AM 1264.2%
6:00 AM 1193.9%
7:00 AM 1816.0%
8:00 AM 1926.4%
9:00 AM 1585.2%
10:00 AM 1886.2%
11:00 AM 1936.4%
12:00 PM 2016.7%
1:00 PM 1846.1%
2:00 PM 1695.6%
3:00 PM 1354.5%
4:00 PM 1153.8%
5:00 PM 1073.5%
6:00 PM 1013.3%
7:00 PM 1073.5%
8:00 PM 923.0%
9:00 PM 882.9%
10:00 PM 913.0%
11:00 PM 953.1%
Total 3020100.0%

Comments by Blog Entry Date/Time

Day Entry MadeAvg.Total
Sunday 5.00160
Monday 4.80384
Tuesday 4.04477
Wednesday 7.39680
Thursday 6.26676
Friday 5.07466
Saturday 4.78177
Total 5.403020

Hour1 Entry MadeAvg.Total
12:00 AM 5.2937
1:00 AM 1.002
5:00 AM 0.000
7:00 AM 3.8550
8:00 AM 3.72134
9:00 AM 6.06297
10:00 AM 5.63276
11:00 AM 4.22194
12:00 PM 6.16351
1:00 PM 3.09133
2:00 PM 4.89230
3:00 PM 7.67322
4:00 PM 4.00108
5:00 PM 6.07170
6:00 PM 4.64116
7:00 PM 8.95188
8:00 PM 8.63164
9:00 PM 5.00115
10:00 PM 6.31101
11:00 PM 4.5732
Total 5.403020

Learn More About Comment Stats
1 - All times GMT -8...


Blog Stats

Favorite Web Sites

My Books

My MSDN Articles