Topaz Filer: if you use e-mail for business, we can save you money and decrease your risk.
Linked list
Messages   Related Types
This message was discovered on microsoft.public.dotnet.languages.csharp.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.

source
a function that would: return the 5th element from the end in a singly
linked list of integers, in one pass, and then provide a set of test cases
against that function.
Can we do this in CSharp?
If no, then can anybody tell me how to go about coming with the solution.

How do u develop test cases for any software you write?

Any insight will be helpful.

Reply to this message...
Vote that this is a GOOD answer...
 
Auto-following on Twitter
Ubuntu and XP on one “desktop”
 
    
Daniel O'Connell [C# MVP] (VIP)
"source" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Of course it can be done, except this sounds an awful lot like you are
trying to get someone to do your homework. I won't give you a solution but
I'll tell you waht to do

1. Write a singally linked list. This is pretty simple. I would advise
building a LinkedList around IList and using that to access your nodes if
you can. Using a manager class will allow you to centralize list
modifications and let you keep track of the node count.

2. retrieving the value at a given index is a pretty generic function. If
you understand how to write the list, you should be able to do this. Hint:
keeping track of node count is a nessecity here

3. To generate tests cases, you would basically build a set of lists and
check to make sure you are getting hte correct value back.
[Original message clipped]

This is easier to answer. You develop test cases by subjecting the method to
a series of values which result in a provable output. Since above you are
looking at the 5th value from the end, you would create a list that is
atleast 5 membesr long and see if the method that locates the 5th member
returns the proper member(If the set is {1,2,3,4,5,6,7} then the correct
value is 2). For more complex functionality your tests will have to monitor
class and possibly application state, but don't get ahead of yourself for
now.

The only other advice I can give you is look out for edge cases and that you
will never catch every edge case.
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
Mabden
"Daniel O'Connell [C# MVP]" <Click here to reveal e-mail address> wrote in
message news:Click here to reveal e-mail address...
[Original message clipped]

Traverse the list with one reference, and have another one that follows
along 5 elements back. When you reach the end of the list with the first
reference, the second one will be 5 from the end. You would need a counter
to make sure you have at least 5 elements, of course.

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
source
This is not my homework. I read this question on one website, and I am
preparing for an interview.
Wanted to know where I can get good source for creating linked list.
I tried looking up MSDN for examples that will implement ILIST interface,
but did not find any examples.
The only reference MSDN gives for using ILIST is for the Listbox control.

Anyway thanks for the explanation for the test cases.
But any good resource for ILIST examples will definately help.

Thanks

"Mabden" <Click here to reveal e-mail address> wrote in message
news:EhTbc.45958$Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
Outlook interop - stopping user properties appearing on Outlook message print
Seriously, why is “cut and paste” majorly newsworthy???
 
    
Daniel O'Connell [C# MVP] (VIP)
"source" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

http://www.codeproject.com/csharp/PhSinglyLinkedLists.asp?target=linked%7Clist

I don't have an example for IList, unfortunatly.

[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
source
Mabden,
I finally got my own code using sorted list, but now I think the real
challenge is to iterate through the SortedList without using the index.

If I use Foreach then I cannot think of anyway how am I going to introduce a
second reference which will be 5 from the end.
Basically how do I get the second reference to work.

Thanks daniel for the example, basically I was not looking at creating my
own linked list but a way to traverse through the linked list.
I was able to use SortedList data structure in .NET, but the way I could
traverse through was using the index,
but my problem is how do I get a second reference suggested by Mabden to
point to the element which will be 5 from behind if I use ForEach to iterate
through my list.

"Mabden" <Click here to reveal e-mail address> wrote in message
news:EhTbc.45958$Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
Vote that this is a GOOD answer...
 
 
    
ArWeGod
[top posting fixed]
"source" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Please don't top-post.

If you can't figure out that from the clues given, I guess you don't
deserve the job (or an A, if it is homework). ;-)

--
Mabden

Reply to this message...
Vote that this is a GOOD answer...
 
Email Archiving and Email Filing - what’s the difference?
Web-based task/todo list management
 
    
Mabden
"Mabden" <Click here to reveal e-mail address> wrote in message
news:hC1cc.32694$Click here to reveal e-mail address...
[Original message clipped]

Well, I thought about it a little more, and I don't think you can use
ForEach unless you build a new list inside the loop and then when the
loop exits, do a new foreach on the list you built which would be 5
smaller. This is a terrible way to program however.

If the index is numeric, you could use a regular for loop. Here's
something off the top of my head, but there's got to be a better way...
========================
using System;
using System.Collections;

class FollowTest
{
static void Main ()
{
Hashtable hashmonth = new Hashtable ();

hashmonth.Add (1, "January");
hashmonth.Add (2, "February");
hashmonth.Add (3, "March");
hashmonth.Add (4, "April");
hashmonth.Add (5, "May");
hashmonth.Add (6, "June");
hashmonth.Add (7, "July");
hashmonth.Add (8, "August");
hashmonth.Add (9, "September");
hashmonth.Add (10, "October");
hashmonth.Add (11, "November");
hashmonth.Add (12, "December");

// access as collection values (no follower)
Console.WriteLine ("\nCollection order\n");
ICollection values = hashmonth.Values;
foreach (string month in values)
{
Console.WriteLine ("Month: {0}", month);
}

// access by month number
// with follower 5 behind
int follow = 0;
int start_follow = 5;
Console.WriteLine ("\nMonth number order\n");
for (int i=0; i < 12; i++)
{
Console.Write ("Month: {0}", hashmonth[i+1]);
if (--start_follow < 1)
{
Console.Write ("\t\t(Follow Month: {0})", hashmonth[++follow]);
}
Console.Write ("\n");
}
}
}

========================
--
Mabden

Reply to this message...
Vote that this is a GOOD answer...
 
Open source windows
The Law Society’s guidelines on e-mail management
 
 
System.Collections.Hashtable
System.Collections.ICollection
System.Collections.IList
System.Collections.SortedList
System.Console




Ad
BootFX
Reliable and powerful .NET application framework.
Recession Busting Bespoke Software
Get through the recession by investing in bespoke software to decrease costs and create commercial opportunities.
Other DN247 Network Sites
.NET 247
SQL Server Wins
Old Skool Developer
 
Copyright © AMX Software Ltd 2008-2009. Portions copyright © Matthew Baxter-Reynolds 2001-2009. All rights reserved.
Contact Us - Terms of Use - Privacy Policy - .NET 247 is a member of the DN247 Network - 4.0.30129.1734