<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>dsa Forum Rss Feed</title><link>http://www.codeplex.com/dsa/Thread/List.aspx</link><description>dsa Forum Rss Description</description><item><title>New Post: The base class is missing.</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=34607</link><description>&lt;div style="line-height: normal;"&gt;Sorry for the inconvenience, it has been fixed...&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;</description><author>lukadt</author><pubDate>Thu, 11 Sep 2008 12:51:00 GMT</pubDate><guid isPermaLink="false">New Post: The base class is missing. 20080911125100P</guid></item><item><title>New Post: The base class is missing.</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=34607</link><description>&lt;div style="line-height: normal;"&gt;I downloaded the latest code, and it complains that the base class is missing.&lt;br&gt;
&lt;/div&gt;</description><author>yuren1978</author><pubDate>Sat, 30 Aug 2008 13:20:40 GMT</pubDate><guid isPermaLink="false">New Post: The base class is missing. 20080830012040P</guid></item><item><title>New Post: It is already in .net?</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=32372</link><description>&lt;div style="line-height: normal;"&gt;Quicksort is used in Array.Sort but our quicksort can be used on anything that implements IList&amp;lt;T&amp;gt;.&lt;br&gt;
&lt;br&gt;
As for doubly linked list, I think it does use a different implementation - it is there probably because it was one of the first data structures in there. I did some perf testing a while back and our doubly linked list was faster than LinkedList&amp;lt;T&amp;gt;.&lt;br&gt;
&lt;br&gt;
For now it will stay, unless we find a reason to get rid of it.
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Sun, 27 Jul 2008 20:58:48 GMT</pubDate><guid isPermaLink="false">New Post: It is already in .net? 20080727085848P</guid></item><item><title>New Post: It is already in .net?</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=32372</link><description>&lt;div style="line-height: normal;"&gt;According to the front page: &amp;quot;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;Data
Structures and Algorithms (DSA) features implementations of data
structures and algorithms that are not implemented in any version of
.NET.&amp;quot;&lt;br&gt;
&lt;br&gt;
But &lt;/span&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;DoublyLinkedList is already implemented in .net? Or is it because it has a different implementation that would cause one to use &lt;/span&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;DoublyLinkedList instead of&amp;nbsp;&lt;/span&gt;&lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;&lt;/span&gt;LinkedList&lt;span&gt;&amp;lt;T&amp;gt;?&lt;br&gt;
&lt;br&gt;
A&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;lso, the Quick sort algorithm is also already implemented in .net in the form of Array.Sort(). It uses a unstable quick sort if I remember correctly.&lt;br&gt;
&lt;/div&gt;</description><author>genbox</author><pubDate>Sun, 27 Jul 2008 19:16:13 GMT</pubDate><guid isPermaLink="false">New Post: It is already in .net? 20080727071613P</guid></item><item><title>New Post: A question about Fibonacci's numbers generator</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=30073</link><description>&lt;div style="line-height: normal;"&gt;Hi Gianluca, i'm glad you are giving us&amp;nbsp;interesting feedback and focus on Fibonacci complexity. Binet's formula it's very surprising and interesting at the same time but in real world there are&amp;nbsp;some built-in limits for the number of decimal places&amp;nbsp;one can accurately compute (floating point limited precision). Sometimes these inaccuracies will make numbers round to the wrong values and carry to inappropriate result. The approach we&amp;nbsp;adopted&amp;nbsp;improves the classical algorithm definition using the memory during the computation in such a way&amp;nbsp;&amp;nbsp;that&amp;nbsp;the values of two consecutive terms of the Fibonacci sequence are always stored in the memory thus avoiding unnecessary computing...&lt;br&gt;
Hear you soon, Luca&lt;br&gt;
&lt;/div&gt;</description><author>lukadt</author><pubDate>Mon, 23 Jun 2008 14:27:37 GMT</pubDate><guid isPermaLink="false">New Post: A question about Fibonacci's numbers generator 20080623022737P</guid></item><item><title>New Post: A question about Fibonacci's numbers generator</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=30073</link><description>&lt;div style="line-height: normal;"&gt;I looked at the Fibonacci's generator and I would ask a question about it: why did you choose to implement the generator using the iterative formula instead of the closed form version? With the iterative formula f(n)=f(n-1)+f(n-2) one has to do 'n' passes to get the n-th fibonacci's number and in this case the complexity is obviously O(n). However, the iterative formula can be &amp;quot;rolled up&amp;quot; and rewritten in closed form (the so called Binet's formula), so it is required only the 'n' to get the n-th number and the complexity drops to O(1) (a constant time!).&lt;br&gt;
&lt;br&gt;
Here is the Binet's closed formula of the Fibonacci's series:&lt;br&gt;
f(n) = floor((1/2)+((g^n)/sqrt(5))); where 'g' is the golden ratio equal to g=(1+sqrt(5))/2;&lt;br&gt;
&lt;br&gt;
Bye!&lt;br&gt;
Gianluca&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;</description><author>GianlucaGhettini</author><pubDate>Sun, 22 Jun 2008 13:19:28 GMT</pubDate><guid isPermaLink="false">New Post: A question about Fibonacci's numbers generator 20080622011928P</guid></item><item><title>New Post: Stability of sorting algorithms...</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=30002</link><description>&lt;div style="line-height: normal;"&gt;&lt;br&gt;
&lt;div style="border-right:medium none;padding-right:0.2em;padding-left:0.2em;border-top:#aaa 0.1em dotted;padding-bottom:0.2em;margin:1em 0em 2.5em 3em;border-left:medium none;padding-top:0.2em;border-bottom:#aaa 0.1em dotted;font-style:italic"&gt;&lt;br&gt;
GianlucaGhettini wrote:&lt;br&gt;
Yes, IComparable interface allows deeper control over sorting. In fact I use to reimplement this interface to get the right behavior from my sorting algorithm (i.e. sorting again over equal key objects to break the tie). However, I think that the stability is a very basic property of a sorting algorithm and it should not be left to reimplement over and over again.&lt;br&gt;
&lt;br&gt;
Gianluca&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
There is a fine line between giving the programmer more control, and providing generalised solutions - all I can say is that we will look at it. &lt;br&gt;
&lt;br&gt;
Thanks for your feedback!&lt;br&gt;
&lt;br&gt;
Granville
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Sun, 22 Jun 2008 11:29:37 GMT</pubDate><guid isPermaLink="false">New Post: Stability of sorting algorithms... 20080622112937A</guid></item><item><title>New Post: Stability of sorting algorithms...</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=30002</link><description>&lt;div style="line-height: normal;"&gt;Yes, IComparable interface allows deeper control over sorting. In fact I use to reimplement this interface to get the right behavior from my sorting algorithm (i.e. sorting again over equal key objects to break the tie). However, I think that the stability is a very basic property of a sorting algorithm and it should not be left to reimplement over and over again.&lt;br&gt;
&lt;br&gt;
Gianluca&lt;br&gt;
&lt;/div&gt;</description><author>GianlucaGhettini</author><pubDate>Sun, 22 Jun 2008 08:52:55 GMT</pubDate><guid isPermaLink="false">New Post: Stability of sorting algorithms... 20080622085255A</guid></item><item><title>New Post: Stability of sorting algorithms...</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=30002</link><description>&lt;div style="line-height: normal;"&gt;Hi Gianluca,&lt;br&gt;
&lt;br&gt;
For now what I will say is that we will look into it BUT you can actually take a more atomic approach over sorting by implementing the IComparable interface on the complex types, this is what DSA sorting algorithms use to verify who is larger than who, less than etc.&lt;br&gt;
&lt;br&gt;
Thanks for the comment and I will add it to our unofficial to-look-at list.&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;br&gt;
Granville
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Sat, 21 Jun 2008 16:29:53 GMT</pubDate><guid isPermaLink="false">New Post: Stability of sorting algorithms... 20080621042953P</guid></item><item><title>New Post: Stability of sorting algorithms...</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=30002</link><description>&lt;div style="line-height: normal;"&gt;&lt;span&gt;Hi, good job!!!&lt;br&gt;
I'm a Luca's friend and I'm currently programming in .NET (sometimes with Luca, at university).&lt;br&gt;
&lt;br&gt;
.NET is a very powerful and interesting framework, but IHMO I think it&lt;br&gt;
lacks control over sorting algorithms. What I'm trying to point out is&lt;br&gt;
about stability of a sorting algorithm.&lt;br&gt;
A sorting algorithm is stable if maintains the relative order of records&lt;br&gt;
with equal keys (i.e., values). That is, a sorting algorithm is stable&lt;br&gt;
if whenever there are two records R and S with the same key and with R&lt;br&gt;
appearing before S in the original list, R will appear before S in the&lt;br&gt;
sorted list.&lt;br&gt;
This property isn't critical when you are dealing with base types like&lt;br&gt;
integers or strings, but can be very useful when you are sorting more&lt;br&gt;
complex objects. I mean, suppose you have a simple array of integers,&lt;br&gt;
like this:&lt;br&gt;
[6 5 2 5 1 7 1]&lt;br&gt;
sorting it is straigthforward, we always obtain:&lt;br&gt;
[1 1 2 5 5 6 7]&lt;br&gt;
The first two integers of the sorted array are 1 1. Reversing the order&lt;br&gt;
of this two integers doesn't change the array. So, for example, when you&lt;br&gt;
are sorting a random array that contains two 1's, the 1 1 sequence&lt;br&gt;
appearing in the sorted array will always be the same, no matter if the&lt;br&gt;
algorithm you are using is stable or not.&lt;br&gt;
Now think you have an array of animals, and that you are sorting by&lt;br&gt;
number of legs. Now stability makes the difference:&lt;br&gt;
To figure out why, suppose you have this two arrays:&lt;br&gt;
&lt;br&gt;
[cow, snake, dog, cat, chicken, ant]&lt;br&gt;
&lt;br&gt;
and:&lt;br&gt;
&lt;br&gt;
[dog, ant, chicken, cow, cat]&lt;br&gt;
&lt;br&gt;
with an unstable algorithm you can obtain:&lt;br&gt;
&lt;br&gt;
[snake, chicken, cow, dog, cat, ant]&lt;br&gt;
&lt;br&gt;
and:&lt;br&gt;
&lt;br&gt;
[chicken, dog, cow, cat, ant]&lt;br&gt;
&lt;br&gt;
with a stable algorithm:&lt;br&gt;
&lt;br&gt;
[snake, chicken, cow, dog, cat, ant]&lt;br&gt;
&lt;br&gt;
and:&lt;br&gt;
&lt;br&gt;
[chicken, cow, dog, cat, ant]&lt;br&gt;
&lt;br&gt;
As you can see, the stable version of the algorithm always preserves the&lt;br&gt;
order of the sequence [cow, dog, cat] (although this order is arbitrary)&lt;br&gt;
in every array containings these animals, while the other MAY not.&lt;br&gt;
.NET doesn't allow the programmer to know if the sorting algorithm&lt;br&gt;
he/she's using is stable or not (some algorithms can be either stable or&lt;br&gt;
unstable).&lt;br&gt;
I'd like to deal with a stability-aware DSA framework!!! :)&lt;/span&gt;
&lt;/div&gt;</description><author>GianlucaGhettini</author><pubDate>Fri, 20 Jun 2008 13:55:51 GMT</pubDate><guid isPermaLink="false">New Post: Stability of sorting algorithms... 20080620015551P</guid></item><item><title>NEW POST: Comments about Set&lt;T&gt; implementation</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=22630</link><description>&lt;div class="wikidoc"&gt;
I'll look into it&lt;br /&gt; &lt;br /&gt;Thanks,&lt;br /&gt; &lt;br /&gt;Granville&lt;br /&gt; &lt;br /&gt;&lt;div class="quote"&gt;
 &lt;br /&gt;mstrobel wrote:&lt;br /&gt;Hi there,&lt;br /&gt; &lt;br /&gt;I have some observations about the Set&amp;lt;T&amp;gt; class.  First, a Set&amp;lt;T&amp;gt; wraps some other CollectionBase&amp;lt;T&amp;gt;, which it takes as a constructor parameter.  Since there is no guarantee that the wrapped collection is a set of unique entities (it may be populated with several duplicates), then there is no guarantee that any Set&amp;lt;T&amp;gt; is actually a unique set.  However, since Set&amp;lt;T&amp;gt; already implements CollectionBase&amp;lt;T&amp;gt;, I don't see why it's necessary to wrap another collection at all.  Since all of the collection manipulation methods (Add, Remove, etc.) operate directly on the wrapped set, then why not simply have Set&amp;lt;T&amp;gt; extend a fully-functional collection type (e.g. a BinarySearchTree&amp;lt;T&amp;gt; with an IComparer&amp;lt;T&amp;gt; implementation that compares hashcodes) and override the Add method to include a uniqueness check?&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;Mike&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Fri, 22 Feb 2008 12:07:50 GMT</pubDate><guid isPermaLink="false">NEW POST: Comments about Set&lt;T&gt; implementation 20080222120750P</guid></item><item><title>NEW POST: Comments about Set&lt;T&gt; implementation</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=22630</link><description>&lt;div class="wikidoc"&gt;
Hi there,&lt;br /&gt; &lt;br /&gt;I have some observations about the Set&amp;lt;T&amp;gt; class.  First, a Set&amp;lt;T&amp;gt; wraps some other CollectionBase&amp;lt;T&amp;gt;, which it takes as a constructor parameter.  Since there is no guarantee that the wrapped collection is a set of unique entities (it may be populated with several duplicates), then there is no guarantee that any Set&amp;lt;T&amp;gt; is actually a unique set.  However, since Set&amp;lt;T&amp;gt; already implements CollectionBase&amp;lt;T&amp;gt;, I don't see why it's necessary to wrap another collection at all.  Since all of the collection manipulation methods (Add, Remove, etc.) operate directly on the wrapped set, then why not simply have Set&amp;lt;T&amp;gt; extend a fully-functional collection type (e.g. a BinarySearchTree&amp;lt;T&amp;gt; with an IComparer&amp;lt;T&amp;gt; implementation that compares hashcodes) and override the Add method to include a uniqueness check?&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;Mike&lt;br /&gt;
&lt;/div&gt;</description><author>mstrobel</author><pubDate>Fri, 22 Feb 2008 02:10:41 GMT</pubDate><guid isPermaLink="false">NEW POST: Comments about Set&lt;T&gt; implementation 20080222021041A</guid></item><item><title>NEW POST: Extension methods or static methods?</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=16793</link><description>&lt;div class="wikidoc"&gt;
True. I'll admit I didn't actually try the normal route until a week or so after starting this thread - but I would encourage the ext method way as it increases the synergy between the BCL and DSA.&lt;br /&gt; &lt;br /&gt;Thanks Mike!&lt;br /&gt; &lt;br /&gt;&lt;div class="quote"&gt;
 &lt;br /&gt;mstrobel wrote:&lt;br /&gt;Hi Granville,&lt;br /&gt; &lt;br /&gt;I fully embrace extension methods.  Not only do they allow for the same invocation style as instance methods, but they can also be called in the same way as regular static methods, like so:&lt;br /&gt; &lt;br /&gt;public static class Algorithms&lt;br /&gt;{&lt;br /&gt;    public static IList&amp;lt;T&amp;gt; BubbleSort&amp;lt;T&amp;gt;(this IList&amp;lt;T&amp;gt; source) { ... }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;var myList = new List&amp;lt;T&amp;gt; { 5, 2, 7, 1, 8 };&lt;br /&gt;var sortedList1 = myList.BubbleSort();&lt;br /&gt;var sortedList2 = Algorithms.BubbleSort(myList);&lt;br /&gt; &lt;br /&gt;Since you get the best of both worlds, it makes little sense not to use extension methods :).&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;Mike&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Thu, 21 Feb 2008 19:47:12 GMT</pubDate><guid isPermaLink="false">NEW POST: Extension methods or static methods? 20080221074712P</guid></item><item><title>NEW POST: Efficiency of Heap.Remove</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=22604</link><description>&lt;div class="wikidoc"&gt;
Good catch. I actually added all that stuff the other day off the top of my head so bare with me on that as its sort of a skim at the moment.&lt;br /&gt; &lt;br /&gt;Thanks for the catch. &lt;br /&gt; &lt;br /&gt;p.s. if you find any others that are inaccurate please let me know, like I said it was skim through the source but I think the addition of this is pretty decent.&lt;br /&gt; &lt;br /&gt;&lt;div class="quote"&gt;
 &lt;br /&gt;mstrobel wrote:&lt;br /&gt;Hi there,&lt;br /&gt; &lt;br /&gt;Great work on the library, and I like the addition of the new extension methods :).&lt;br /&gt; &lt;br /&gt;I noticed that the documentation for the Heap.Remove method claims an asymptotic upper bound of O(log n).  However, the first line of the method is a call to Array.IndexOf, which I believe is O(n), which is faster growing than O(log n).  I haven't analyzed the method in detail, but removing that call should improve the efficiency of the method so that it actually is O(log n).  I haven't looked at the efficiency of any other methods--this just happened to catch my eye as I was perusing the source code :).&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;Mike&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Thu, 21 Feb 2008 19:45:38 GMT</pubDate><guid isPermaLink="false">NEW POST: Efficiency of Heap.Remove 20080221074538P</guid></item><item><title>NEW POST: Extension methods or static methods?</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=16793</link><description>&lt;div class="wikidoc"&gt;
Hi Granville,&lt;br /&gt; &lt;br /&gt;I fully embrace extension methods.  Not only do they allow for the same invocation style as instance methods, but they can also be called in the same way as regular static methods, like so:&lt;br /&gt; &lt;br /&gt;public static class Algorithms&lt;br /&gt;{&lt;br /&gt;    public static IList&amp;lt;T&amp;gt; BubbleSort&amp;lt;T&amp;gt;(this IList&amp;lt;T&amp;gt; source) { ... }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;var myList = new List&amp;lt;T&amp;gt; { 5, 2, 7, 1, 8 };&lt;br /&gt;var sortedList1 = myList.BubbleSort();&lt;br /&gt;var sortedList2 = Algorithms.BubbleSort(myList);&lt;br /&gt; &lt;br /&gt;Since you get the best of both worlds, it makes little sense not to use extension methods :).&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;Mike&lt;br /&gt;
&lt;/div&gt;</description><author>mstrobel</author><pubDate>Thu, 21 Feb 2008 17:34:13 GMT</pubDate><guid isPermaLink="false">NEW POST: Extension methods or static methods? 20080221053413P</guid></item><item><title>NEW POST: Efficiency of Heap.Remove</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=22604</link><description>&lt;div class="wikidoc"&gt;
Hi there,&lt;br /&gt; &lt;br /&gt;Great work on the library, and I like the addition of the new extension methods :).&lt;br /&gt; &lt;br /&gt;I noticed that the documentation for the Heap.Remove method claims an asymptotic upper bound of O(log n).  However, the first line of the method is a call to Array.IndexOf, which I believe is O(n), which is faster growing than O(log n).  I haven't analyzed the method in detail, but removing that call should improve the efficiency of the method so that it actually is O(log n).  I haven't looked at the efficiency of any other methods--this just happened to catch my eye as I was perusing the source code :).&lt;br /&gt; &lt;br /&gt;Cheers,&lt;br /&gt;Mike&lt;br /&gt;
&lt;/div&gt;</description><author>mstrobel</author><pubDate>Thu, 21 Feb 2008 17:28:39 GMT</pubDate><guid isPermaLink="false">NEW POST: Efficiency of Heap.Remove 20080221052839P</guid></item><item><title>NEW POST: Home page</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=18012</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="quote"&gt;
 &lt;br /&gt;1. Yep! You are right. But not in the way, when you are developing a library of collections. Just take a look at the PowerCollections.&lt;br /&gt; &lt;br /&gt;
&lt;/div&gt; &lt;br /&gt;I will look into this, the idea is good of the Collection suffix to differentiate the collections but if people think it is over zealous then I will modify all affected.&lt;br /&gt; &lt;br /&gt;The PowerCollections project have either suppressed the warning altogether or just not runned code analysis - the first is more likely :-)&lt;br /&gt; &lt;br /&gt;I have opened a work item for this for DSA 0.3, but if its what people want then its what they will get!!&lt;br /&gt; &lt;br /&gt;The project can only get better with great feedback - thanks Ivan.&lt;br /&gt; &lt;br /&gt;And about point 3 - yes, I don't mind the type inference but many are not ready to embrace it yet but maybe this would be a good thing to show them of its great use :-) making code more readable.&lt;br /&gt; &lt;br /&gt;Thanks,&lt;br /&gt; &lt;br /&gt;Granville.&lt;br /&gt;
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Mon, 19 Nov 2007 18:30:45 GMT</pubDate><guid isPermaLink="false">NEW POST: Home page 20071119063045P</guid></item><item><title>NEW POST: Home page</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=18012</link><description>&lt;div class="wikidoc"&gt;
1. Yep! You are right. But not in the way, when you are developing a library of collections. Just take a look at the PowerCollections.&lt;br /&gt;3. As for IEnumerable&amp;lt;int&amp;gt; I think you are right. .NET community is not ready infer types in a head yet. So, will be nice to use declarations when type of a variable is not an obvious.&lt;br /&gt; &lt;br /&gt;Thank,&lt;br /&gt;Ivan.&lt;br /&gt;
&lt;/div&gt;</description><author>ie</author><pubDate>Mon, 19 Nov 2007 16:41:44 GMT</pubDate><guid isPermaLink="false">NEW POST: Home page 20071119044144P</guid></item><item><title>NEW POST: Home page</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=18012</link><description>&lt;div class="wikidoc"&gt;
Hi Ivan,&lt;br /&gt; &lt;br /&gt;1.  Adding the sufficx Collection is a best practive when adding custom collections - this is an FxCop rule most tend to ignore but I chose not to as I wanted to distinguish between the DSA collections and those in the BCL.&lt;br /&gt; &lt;br /&gt;2.  &lt;br /&gt;&amp;gt; Full support of the LINQ language extensions in .NET 3.5 for the C# 3.0 and VB 9.0 languages.&lt;br /&gt;What are you doing to get full support? I think nothing. Please advice.&lt;br /&gt; &lt;br /&gt;Actually in order to get LINQ support you need to have something that implements IEnumerable, this is old as I wanted to make claer that all collections in DSA implemented ALL standard interfaces that the BCL stuff does so you could switch in between the two without loss of functionality and I felt like LINQ was something to maybe emphasise given its coverage.&lt;br /&gt; &lt;br /&gt;&amp;gt; Rich Visual Studio debugging support&lt;br /&gt;It is should be by default. So, this is not an issue to take notice.&lt;br /&gt; &lt;br /&gt;Actually if you don't specify a visualizer for a collection you get the raw view by default, with the DA stuff you get a simplified view like those in the BCL and araw view - again the point was to make it clear that DSA provides the same level of VS debugging support as the BCL stuff.&lt;br /&gt; &lt;br /&gt;&amp;gt; Algorithms that solve common problems for common data structures, from linked lists to strings.&lt;br /&gt;This is the most interesting! So this should be first in the list. Also, there are should be examples' list of problems, that can not be solved by .NET FLC collections and can be solved by your.&lt;br /&gt; &lt;br /&gt;Point taken - I will work on that thank you for your feedback.&lt;br /&gt; &lt;br /&gt;3.  Ok, this is where it is offered purely out of curiosity.  The fact is that implementing a Queue and Stack was easy given the other collections already done so I did them for completeleness - use whichever implementation you wish but I understand your point.&lt;br /&gt; &lt;br /&gt;I used IEnumerable&amp;lt;int&amp;gt; because I have been using LINQ now for about a year and a half and I always used to be explicit but if people feel that var is more clearer then I would modify that.&lt;br /&gt; &lt;br /&gt;I would also like to point out that the homepage info hasn't really been updated since DSA 0.1 which was released a while back so I will take all your points into consideration and wil revise the homepage in the next week.&lt;br /&gt; &lt;br /&gt;Thanks,&lt;br /&gt; &lt;br /&gt;Granville.&lt;br /&gt;
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Mon, 19 Nov 2007 12:41:30 GMT</pubDate><guid isPermaLink="false">NEW POST: Home page 20071119124130P</guid></item><item><title>NEW POST: Extension methods or static methods?</title><link>http://www.codeplex.com/dsa/Thread/View.aspx?ThreadId=16793</link><description>&lt;div class="wikidoc"&gt;
Hi Ivan,&lt;br /&gt; &lt;br /&gt;At the moment most of the algorithms are extension methods, however there are a few cases where they are static methods.&lt;br /&gt; &lt;br /&gt;I have simply chosen the approach which provides most readability so if you spot something that you feel should be one or the other but isn't let me know and I will review the implementation to see if its clearer.&lt;br /&gt; &lt;br /&gt;Thanks,&lt;br /&gt; &lt;br /&gt;Granville.&lt;br /&gt;
&lt;/div&gt;</description><author>gbarnett</author><pubDate>Mon, 19 Nov 2007 12:29:01 GMT</pubDate><guid isPermaLink="false">NEW POST: Extension methods or static methods? 20071119122901P</guid></item></channel></rss>