<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:dtvmedia="http://participatoryculture.org/RSSModules/dtv/1.0"
	xmlns:media="http://search.yahoo.com/mrss/"
	>
<channel>
	<title>Comments for VoltInsider</title>
	<atom:link href="http://voltinsider.com/?feed=comments-rss2" rel="self" type="application/rss+xml" />
	<link>http://voltinsider.com</link>
	<description>Job information for engineers who work for Volt Technical Resources in Redmond, WA</description>
	<lastBuildDate>Fri, 25 Jul 2008 19:48:20 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on The Middle Value of a Linked List Interview Question by VoltAdmin</title>
		<link>http://voltinsider.com/?p=203&#038;cpage=1#comment-2238</link>
		<dc:creator>VoltAdmin</dc:creator>
		<pubDate>Fri, 25 Jul 2008 19:48:20 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=203#comment-2238</guid>
		<description>#include &quot;stdafx.h&quot;
#include &lt;stdlib.h&gt;

// middle value of a linked list example
// does not have any error-checking

struct Node {
  int data;
  Node* next;
};

void add(Node** h, int d) // add to front of list
{
  Node* n;
  n = (Node*) malloc(sizeof(Node));
  n-&gt;data = d;
  n-&gt;next = *h;
  *h = n;
}

void display(Node* h)
{
  Node* p = h;
  while (p != NULL)
  {
    printf(&quot;%d -&gt; &quot;, p-&gt;data);
    p = p-&gt;next;
  }
  printf(&quot;X\n&quot;);
}

int size(Node* h)
{
  Node* p = h;
  int ct = 0;
  while (p != NULL) {
    ++ct;
    p = p-&gt; next;
  }
  return ct;
}

int midValue(Node* h)
{
  Node* p = h;
  for (int ct = 1; ct &lt; size(h)/2; ++ct)
    p = p-&gt;next;

  return p-&gt;next-&gt;data;
}

int midValueFancy(Node *h)
{
  Node* p = h; // advances once
  Node* q = h; // advances twice
  while (q-&gt;next != NULL &amp;&amp; q-&gt;next-&gt;next != NULL)
  {
    p = p-&gt;next;
    q = q-&gt;next;
    q = q-&gt;next;
  }
  return p-&gt;data;
}


int _tmain(int argc, _TCHAR* argv[])
{
  char dummy;
  Node* head;

  printf(&quot;%s&quot;, &quot;Begin linked list mid value demo\n&quot;);
  head = NULL;
  add(&amp;head, 10);
  add(&amp;head, 8);
  add(&amp;head, 6);
  add(&amp;head, 4);
  add(&amp;head, 2);
  printf(&quot;List is:\n&quot;); 
  display(head);
  printf(&quot;List has size %d\n&quot;, size(head));
  printf(&quot;The middle value is %d\n&quot;, midValueFancy(head));
   
  scanf(&quot;%c&quot;, &amp;dummy);
	return 0;
}</description>
		<content:encoded><![CDATA[<p>#include &#8220;stdafx.h&#8221;<br />
#include <stdlib .h></p>
<p>// middle value of a linked list example<br />
// does not have any error-checking</p>
<p>struct Node {<br />
  int data;<br />
  Node* next;<br />
};</p>
<p>void add(Node** h, int d) // add to front of list<br />
{<br />
  Node* n;<br />
  n = (Node*) malloc(sizeof(Node));<br />
  n->data = d;<br />
  n->next = *h;<br />
  *h = n;<br />
}</p>
<p>void display(Node* h)<br />
{<br />
  Node* p = h;<br />
  while (p != NULL)<br />
  {<br />
    printf(&#8221;%d -> &#8220;, p->data);<br />
    p = p->next;<br />
  }<br />
  printf(&#8221;X\n&#8221;);<br />
}</p>
<p>int size(Node* h)<br />
{<br />
  Node* p = h;<br />
  int ct = 0;<br />
  while (p != NULL) {<br />
    ++ct;<br />
    p = p-> next;<br />
  }<br />
  return ct;<br />
}</p>
<p>int midValue(Node* h)<br />
{<br />
  Node* p = h;<br />
  for (int ct = 1; ct < size(h)/2; ++ct)<br />
    p = p->next;</p>
<p>  return p->next->data;<br />
}</p>
<p>int midValueFancy(Node *h)<br />
{<br />
  Node* p = h; // advances once<br />
  Node* q = h; // advances twice<br />
  while (q->next != NULL &#038;&#038; q->next->next != NULL)<br />
  {<br />
    p = p->next;<br />
    q = q->next;<br />
    q = q->next;<br />
  }<br />
  return p->data;<br />
}</p>
<p>int _tmain(int argc, _TCHAR* argv[])<br />
{<br />
  char dummy;<br />
  Node* head;</p>
<p>  printf(&#8221;%s&#8221;, &#8220;Begin linked list mid value demo\n&#8221;);<br />
  head = NULL;<br />
  add(&#038;head, 10);<br />
  add(&#038;head, 8);<br />
  add(&#038;head, 6);<br />
  add(&#038;head, 4);<br />
  add(&#038;head, 2);<br />
  printf(&#8221;List is:\n&#8221;);<br />
  display(head);<br />
  printf(&#8221;List has size %d\n&#8221;, size(head));<br />
  printf(&#8221;The middle value is %d\n&#8221;, midValueFancy(head));</p>
<p>  scanf(&#8221;%c&#8221;, &#038;dummy);<br />
	return 0;<br />
}</stdlib></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Linked List Reverse Pairs Interview Question at Microsoft by VoltAdmin</title>
		<link>http://voltinsider.com/?p=196&#038;cpage=1#comment-2237</link>
		<dc:creator>VoltAdmin</dc:creator>
		<pubDate>Sun, 29 Jun 2008 15:45:33 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=196#comment-2237</guid>
		<description>Here are possible recursive and iterative solutions in C/C++.

struct Node { 
  int data;
  Node* next;
};

void ReversePairsRecursive(Node* h)
{
  int temp;

  if (h == NULL)
    return; // empty list
  else if (h-&gt;next == NULL)
    return; // only 1 data
  else {
    temp = h-&gt;data; // reverse first pair
    h-&gt;data = h-&gt;next-&gt;data;
    h-&gt;next-&gt;data = temp;
    ReversePairsRecursive(h-&gt;next-&gt;next); // reverse rest of list
  }
}

void ReversePairsIterative(Node* h)
{
  Node* p;
  int temp;

  p = h;
  while (p != NULL &amp;&amp; p-&gt;next != NULL)
  {
    temp = p-&gt;data;
    p-&gt;data = p-&gt;next-&gt;data;
    p-&gt;next-&gt;data = temp;
    p = p-&gt;next; // advance twice
    p = p-&gt;next;
  }
}</description>
		<content:encoded><![CDATA[<p>Here are possible recursive and iterative solutions in C/C++.</p>
<p>struct Node {<br />
  int data;<br />
  Node* next;<br />
};</p>
<p>void ReversePairsRecursive(Node* h)<br />
{<br />
  int temp;</p>
<p>  if (h == NULL)<br />
    return; // empty list<br />
  else if (h->next == NULL)<br />
    return; // only 1 data<br />
  else {<br />
    temp = h->data; // reverse first pair<br />
    h->data = h->next->data;<br />
    h->next->data = temp;<br />
    ReversePairsRecursive(h->next->next); // reverse rest of list<br />
  }<br />
}</p>
<p>void ReversePairsIterative(Node* h)<br />
{<br />
  Node* p;<br />
  int temp;</p>
<p>  p = h;<br />
  while (p != NULL &#038;&#038; p->next != NULL)<br />
  {<br />
    temp = p->data;<br />
    p->data = p->next->data;<br />
    p->next->data = temp;<br />
    p = p->next; // advance twice<br />
    p = p->next;<br />
  }<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Bad Pills Microsoft Interview Question by VoltAdmin</title>
		<link>http://voltinsider.com/?p=178&#038;cpage=1#comment-2236</link>
		<dc:creator>VoltAdmin</dc:creator>
		<pubDate>Fri, 25 Apr 2008 14:49:14 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=178#comment-2236</guid>
		<description>Solution: Take a square piece of wood and mark the exact center of the square. Place one jar at each of the four corners of the square. Place a fulcrum under the square at the exact center. The jar with the bad pills will cause the square to tilt down towards it.</description>
		<content:encoded><![CDATA[<p>Solution: Take a square piece of wood and mark the exact center of the square. Place one jar at each of the four corners of the square. Place a fulcrum under the square at the exact center. The jar with the bad pills will cause the square to tilt down towards it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Listing Technical Skills on your Resume by Micro</title>
		<link>http://voltinsider.com/?p=148&#038;cpage=1#comment-2214</link>
		<dc:creator>Micro</dc:creator>
		<pubDate>Thu, 03 Jan 2008 19:42:03 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=148#comment-2214</guid>
		<description>&lt;strong&gt;Hello...&lt;/strong&gt;

None...</description>
		<content:encoded><![CDATA[<p><strong>Hello&#8230;</strong></p>
<p>None&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Where Can You Find Great Software Testers? by Micro</title>
		<link>http://voltinsider.com/?p=140&#038;cpage=1#comment-2200</link>
		<dc:creator>Micro</dc:creator>
		<pubDate>Sun, 25 Nov 2007 04:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=140#comment-2200</guid>
		<description>&lt;strong&gt;Hello...&lt;/strong&gt;

None...</description>
		<content:encoded><![CDATA[<p><strong>Hello&#8230;</strong></p>
<p>None&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Where Can You Find Great Software Testers? by cinek810 &#187; Where Can You Find Great Software Testers?</title>
		<link>http://voltinsider.com/?p=140&#038;cpage=1#comment-2199</link>
		<dc:creator>cinek810 &#187; Where Can You Find Great Software Testers?</dc:creator>
		<pubDate>Sat, 24 Nov 2007 22:32:01 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=140#comment-2199</guid>
		<description>[...] Check it out! While looking through the blogosphere we stumbled on an interesting post today.Here&#8217;s a quick excerpt In large technology companies where software systems are essentially the companiesâ€™ products (for example Microsoft and Google), a huge number of software testers are needed. It has been known for a long time that software testing represents at least 50% of the cost of creating a software system. Small technology companies generally cannot afford dedicated software testing and are forced to make due with a haphazard approach to quality assurance. So, suppose you work for, or with, a large techn [...]</description>
		<content:encoded><![CDATA[<p>[...] Check it out! While looking through the blogosphere we stumbled on an interesting post today.Here&#8217;s a quick excerpt In large technology companies where software systems are essentially the companiesâ€™ products (for example Microsoft and Google), a huge number of software testers are needed. It has been known for a long time that software testing represents at least 50% of the cost of creating a software system. Small technology companies generally cannot afford dedicated software testing and are forced to make due with a haphazard approach to quality assurance. So, suppose you work for, or with, a large techn [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Where Can You Find Great Software Testers? by technology &#187; Blog Archive &#187; Where Can You Find Great Software Testers?</title>
		<link>http://voltinsider.com/?p=140&#038;cpage=1#comment-2198</link>
		<dc:creator>technology &#187; Blog Archive &#187; Where Can You Find Great Software Testers?</dc:creator>
		<pubDate>Sat, 24 Nov 2007 02:38:29 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=140#comment-2198</guid>
		<description>[...] Read the rest of this great post here [...]</description>
		<content:encoded><![CDATA[<p>[...] Read the rest of this great post here [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The How-Many-Poker-Hands-Are-There Interview Question by Poker Hands &#187; Blog Archive &#187; The How-Many-Poker-Hands-Are-There Interview Question</title>
		<link>http://voltinsider.com/?p=132&#038;cpage=1#comment-2177</link>
		<dc:creator>Poker Hands &#187; Blog Archive &#187; The How-Many-Poker-Hands-Are-There Interview Question</dc:creator>
		<pubDate>Sat, 20 Oct 2007 01:21:48 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=132#comment-2177</guid>
		<description>[...] VoltInsider wrote an interesting post today on The How-Many-Poker-Hands-Are-There Interview QuestionHere&#8217;s a quick excerpt A basic knowledge of combinatorics is essential for virtually all technical positions at companies &#8230; in an job interview. A typical question is, â€œHow many 5-card poker hands are there?â€ After qualifying &#8230; ) / (5 * 4 * 3 * 2 * 1) = 2,598,960 poker hands. Or, â€œHow many ways can you select 3 test cases from a set of 100 [...]</description>
		<content:encoded><![CDATA[<p>[...] VoltInsider wrote an interesting post today on The How-Many-Poker-Hands-Are-There Interview QuestionHere&#8217;s a quick excerpt A basic knowledge of combinatorics is essential for virtually all technical positions at companies &#8230; in an job interview. A typical question is, â€œHow many 5-card poker hands are there?â€ After qualifying &#8230; ) / (5 * 4 * 3 * 2 * 1) = 2,598,960 poker hands. Or, â€œHow many ways can you select 3 test cases from a set of 100 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Hourglass Interview Question at Microsoft by VoltAdmin</title>
		<link>http://voltinsider.com/?p=116&#038;cpage=1#comment-1922</link>
		<dc:creator>VoltAdmin</dc:creator>
		<pubDate>Wed, 15 Aug 2007 16:03:15 +0000</pubDate>
		<guid isPermaLink="false">http://voltinsider.com/?p=116#comment-1922</guid>
		<description>Here is one solution:

Start both the 5-minute and the 7-minute hourglasses at the same time. When the 5-minute hourglass finishes, flip it, and then flip over the 7-minute hourglass when it finishes its first 7 minutes.

When the 5-minute hourglass runs to 10 minutes (at the end of its second run), flip over both the 5-minute and 7-minute hourglasses at the same time. It means the 7-minute hourglass will run 3 minutes. When the 7-minute hourglass runs to 13 minutes (7 + 3 + 3), flip both the 5-minute and 7-minute hourglasses over one last time to run another 3 minutes.

The total elapsed time is 7 + 3 + 3 + 3 = 16 minutes.</description>
		<content:encoded><![CDATA[<p>Here is one solution:</p>
<p>Start both the 5-minute and the 7-minute hourglasses at the same time. When the 5-minute hourglass finishes, flip it, and then flip over the 7-minute hourglass when it finishes its first 7 minutes.</p>
<p>When the 5-minute hourglass runs to 10 minutes (at the end of its second run), flip over both the 5-minute and 7-minute hourglasses at the same time. It means the 7-minute hourglass will run 3 minutes. When the 7-minute hourglass runs to 13 minutes (7 + 3 + 3), flip both the 5-minute and 7-minute hourglasses over one last time to run another 3 minutes.</p>
<p>The total elapsed time is 7 + 3 + 3 + 3 = 16 minutes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
