Slashdot Mirror


What's New With Data Structures In C#

prostoalex writes "Scott Mitchell published his rather extensive examination of data structures in C# 2.0 (parts 1, 2, 3, 4, 5 and 6 add up to more than a hundred printed pages)."

19 of 38 comments (clear)

  1. No Fibonacci Heap? by at2000 · · Score: 2, Insightful

    Does Microsoft think that we should implement Fibonacci Heap ourselves, but not AVL-tree?

    1. Re:No Fibonacci Heap? by Elwood+P+Dowd · · Score: 3, Interesting

      It's just a body count issue. If Microsoft had twice the time or twice the number of people, C# 2.0 would have had twice the number of new features. Lots of good stuff got jettisoned. Everywhere you look on blogs.msdn.com, folks are talking about what they woulda/coulda/shoulda done with more time.

      --

      There are no trails. There are no trees out here.
    2. Re:No Fibonacci Heap? by rreyelts · · Score: 4, Insightful

      I'm hardly a Microsoft defender, but a fibonacci heap is anything but a common data structure. You'd most likely use one as a priority queue where extract-mins and decrease-keys are extremely common, but even then, lots of people still avoid them.

      On the other hand, AVL trees get used all over the place (red-black trees being a typical backing data structure for an ordered map).

    3. Re:No Fibonacci Heap? by Anonymous Coward · · Score: 1, Funny

      Too bad they don't have money to hire more people, then.

      Maybe they should have spent more time designing and coding instead of blogging. :-)

  2. Kind of introductionary level by Frans+Faase · · Score: 4, Insightful

    Having read pages 1 and 6, I do not read anything beyond the introductionary level. It does not even seem to be rather C# specific for that matter. This is all stuff that people with a University degree in computer science should know by heart. The fact many of the readers rank it with a 9, says more about the readers than the quality of the page. People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application.

    1. Re:Kind of introductionary level by thebatlab · · Score: 1, Insightful

      Is that really a problem? Not everyone has a university degree. And this is available online so you can look at it whenever you want.

      "People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application."

      Gotta start somewhere.

      What about the kids just headed to university who want a quick start? What about people just interested in these like project managers who aren't that technical?

    2. Re:Kind of introductionary level by smittyoneeach · · Score: 1

      Preach it, brother. This is actually useful, and a public service, particularly if you follow the article links. Thanks, Mr. Softy!

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    3. Re:Kind of introductionary level by woah · · Score: 1

      Yeah, but that's the whole point, the article is about C#. I can do all these data structures in C(++), but I've no idea how they are done in .NET/C#. Same goes a lot of other people with CS degrees. Most universites teach C++ or Java their primary language.

  3. Re:Yeah, good luck with that! by Frizzle+Fry · · Score: 1
    And why isn't this under "Developers"?

    It's there:
    http://slashdot.org/index.pl?section=developers
    --
    I'd rather be lucky than good.
  4. Never trust a Gorean to design your data structure by Paul+Crowley · · Score: 1

    From TFA:

    "Too, there are unique challenges with representing and operating upon infinite sets, because an infinite set's contents cannot be completely stored in a data structure or enumerated."

    Compare eg Houseplants of Gor.

    (And yes, it's not terrifically advanced, and disappointingly free of C#-specific enlightenment...)

  5. maddening by philgross · · Score: 5, Interesting


    In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.

    Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity. The comparison with Java, both in content and documentation, is depressing.

    I like C# as a language, but the CS illiteracy of the libraries is annoying and inconvenient. The lack of a concept of a tree means that there's no automatic way to show an XML DOM tree with a TreeControl. They both have independently-developed, incompatible, although largely equivalent, tree representations.

    Also, note that the SortedList class does not implement the IList interface, and none of the shipped System.Collections classes implement their own CollectionBase.

    1. Re:maddening by IainCartwright · · Score: 2, Informative

      My class browser shows:

      LinkedList
      Queue
      SortedList
      Stack
      TreeDictio nary

      in Systems.Collections.Generic - not extensive perhaps - but a little more than your post implies.

    2. Re:maddening by Lord+Omlette · · Score: 1
      In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.
      Word. In the meantime, we're stuck w/ NCollection.
      --
      [o]_O
    3. Re:maddening by spongman · · Score: 2, Informative

      unfortunately, NCollection is vaporware. another good source for C#v2 collections is Wintellect's Power Collections which seems to provide a good deal of what's missing.

    4. Re:maddening by Lord+Omlette · · Score: 1

      I wasn't aware of PC, thanks!

      --
      [o]_O
  6. So far by Zebra_X · · Score: 4, Informative

    most peeps have missed the point of the articles: Common data structures added in C#/.NET 2.0.

    The current framework (1.0 and 1.1) don't come with any standard data structures apart from ArrayList and Collections. 2.0 is the first version of the framework to "feature" these common structures. These articles are a good guide to the new additions. They also show generics in action. Which is also a new addition.
    Finally, there are some *practical* examples of how to use the structures in day to day scenarios.

    Certainly, no ground breaking theory here; then again that wasn't the point.

  7. Over a hundred pages? by Anonymous Coward · · Score: 1, Funny

    I wonder who'll be the first to RTFA before posting.

  8. Huh? by ThePyro · · Score: 1
    Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity.

    Maybe I was reading the wrong set of articles, but I could have sworn that he specificially mentioned multiple tree structures, sets, and graphs as new data structures that were being added in .NET 2.0. And there was plenty of mention of big-O in the discussion of the performance of various data structures.

  9. Parameterized properties? by thecampbeln · · Score: 1

    Kinda off topic, but does anyone know if there are going to be parameterized properties in C# 2.0 (besides the default property, of course)? I didn't see anything overtly mentioned in this article about them (maybe I missed something). This lacking feature is the single most annoying thing (for me anyway) of C#.

    --
    "1984" was ment to be a warning, not a guidebook. You hear that Kim Jong-il!? BushCo?!