﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-我爱c++</title><link>http://www.cppblog.com/aiest/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 18:32:39 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 18:32:39 GMT</pubDate><ttl>60</ttl><item><title>二叉树结构</title><link>http://www.cppblog.com/aiest/archive/2006/05/12/6982.html</link><dc:creator>我爱c++</dc:creator><author>我爱c++</author><pubDate>Thu, 11 May 2006 22:46:00 GMT</pubDate><guid>http://www.cppblog.com/aiest/archive/2006/05/12/6982.html</guid><wfw:comment>http://www.cppblog.com/aiest/comments/6982.html</wfw:comment><comments>http://www.cppblog.com/aiest/archive/2006/05/12/6982.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/aiest/comments/commentRss/6982.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/aiest/services/trackbacks/6982.html</trackback:ping><description><![CDATA[
		<p>#include &lt;iostream&gt;<br />using namespace std;</p>
		<p>typedef double DATA;</p>
		<p>class bstree{<br /> struct bnode{<br />  DATA d;<br />  bnode* left;<br />  bnode* right;<br />  bnode( const DATA&amp; cd )<br />  :d(cd), left(NULL), right(NULL)<br />  {}<br /> };<br /> bnode* root;<br /> int len;<br /> bstree(const bstree&amp; cb){}<br /> bstree&amp; operator=(const bstree&amp; cb){return *this;}<br /> void clear( bnode* &amp; ptree ){<br />  if( ptree==NULL )<br />   return;<br />  clear( ptree-&gt;left );<br />  clear( ptree-&gt;right );<br />  delete ptree;<br />  ptree = NULL;<br />  len--;<br /> }<br /> void insert( bnode* &amp; ptree, bnode* np ){<br />  if( ptree==NULL )<br />   ptree = np;<br />  else if( np-&gt;d &lt; ptree-&gt;d )<br />   insert( ptree-&gt;left, np );<br />  else<br />   insert( ptree-&gt;right, np );<br /> }<br /> void show( bnode* ptree ){<br />  if( ptree==NULL )<br />   return;<br />  show( ptree-&gt;left );<br />  cout &lt;&lt; ptree-&gt;d &lt;&lt; ' ';<br />  show( ptree-&gt;right );<br /> }<br />public:<br /> bstree():len(0){ root=NULL; }<br /> ~bstree(){ clear(); }<br /> void clear(){clear(root);}<br /> void insert( const DATA&amp; cd ){<br />  insert( root, new bnode(cd) );<br />  len++;<br /> }<br /> void show(){ <br />  show( root ); <br />  cout &lt;&lt; endl;<br /> }<br /> int size(){ return len; }<br /> bool empty(){ return root==NULL; }<br />};</p>
		<p>int main()<br />{<br /> bstree bs;<br /> DATA d;<br /> while( cin.peek()!='\n' ){<br />  cin &gt;&gt; d;<br />  bs.insert( d );<br /> }<br /> cout &lt;&lt; bs.size() &lt;&lt; " data:" &lt;&lt; endl;<br /> bs.show();<br /> return 0;<br />}<br /></p>
<img src ="http://www.cppblog.com/aiest/aggbug/6982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/aiest/" target="_blank">我爱c++</a> 2006-05-12 06:46 <a href="http://www.cppblog.com/aiest/archive/2006/05/12/6982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>链表超精彩</title><link>http://www.cppblog.com/aiest/archive/2006/05/10/6901.html</link><dc:creator>我爱c++</dc:creator><author>我爱c++</author><pubDate>Wed, 10 May 2006 15:28:00 GMT</pubDate><guid>http://www.cppblog.com/aiest/archive/2006/05/10/6901.html</guid><wfw:comment>http://www.cppblog.com/aiest/comments/6901.html</wfw:comment><comments>http://www.cppblog.com/aiest/archive/2006/05/10/6901.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/aiest/comments/commentRss/6901.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/aiest/services/trackbacks/6901.html</trackback:ping><description><![CDATA[#include <iostream>
using namespace std;

typedef int DATA;

const unsigned npos=(unsigned)-1;

class clink{
	struct node{
		DATA d;
		node* next;
		node( const DATA&amp; cd )
		:d(cd), next(NULL)
		{}
	};
	node* head;
	int len;
public:
	clink():head(NULL),len(0){}
	~clink(){
		clear();
	}
	node* &amp; getp( unsigned pos ){
		if( pos==0 || head==NULL )
			return head;
		node* p = head;
		for( int i=1; i<pos; i++="" ){="" if(="" p-="">next )
				p = p-&gt;next;
			else
				break;
		}
		return p-&gt;next;
	}
	void insert( const DATA&amp; cd, unsigned pos=0 ){
		node* &amp; lp = getp( pos );
		node* np = new node( cd );
		np-&gt;next = lp;
		lp = np;
		len++;
	}
	friend ostream&amp; operator&lt;&lt;( ostream&amp; os, const clink&amp; cc )
	{
		os &lt;&lt; "{ ";
		node* p = cc.head;
		while( p ){
			os &lt;&lt; p-&gt;d &lt;&lt; ' ';
			p = p-&gt;next;
		}
		os &lt;&lt; "} ";
		return os;
	}
	unsigned find( const DATA&amp; cd ){
		node* p = head;
		unsigned pos=0;
		while( p ){
			if( p-&gt;d==cd )
				return pos;
			pos++;
			p = p-&gt;next;
		}
		return npos;
	}
	bool update( const DATA&amp; d1, const DATA&amp; d2 ){
		unsigned pos=find( d1 );
		node* p;
		if( pos==npos )
			return false;
		p = getp( pos );
		p-&gt;d = d2;
		return true;
	}
	bool erase( const DATA&amp; cd ){
		unsigned pos=find( cd );
		node* p;
		if( pos==npos )
			return false;
		node* &amp; lp = getp( pos );
		p = lp;
		lp = lp-&gt;next;
		delete p;
		len--;
		return true;
	}
	int size(){ return len; }
	bool empty(){ return head==NULL; }
	void clear(){ 
		node* p;
		while( head ){
			p = head-&gt;next;
			delete head;
			head = p;
		}
		len = 0;
	}
};

int main()
{
	clink ol;
	cout &lt;&lt; ol &lt;&lt; endl;
	ol.insert( 10 );
	ol.insert( 20, npos );
	ol.insert( 30, 0 );
	ol.insert( 40 );
	ol.insert( 50, 1 );
	cout &lt;&lt; ol &lt;&lt; endl;
	DATA d;
	cout &lt;&lt; "input a DATA for search:" &lt;&lt; endl;
	cin &gt;&gt; d;
	unsigned pos=ol.find( d );
	if( pos==(unsigned)-1 )
		cout &lt;&lt; "not found!" &lt;&lt; endl;
	else
		cout &lt;&lt; "found at " &lt;&lt; pos &lt;&lt; endl;
	DATA nd;
	for( int i=0; i&lt;3; i++ ){
		cout &lt;&lt; "input old data and new data:\n";
		cin &gt;&gt; d &gt;&gt; nd;
		ol.update( d, nd );
		cout &lt;&lt; ol &lt;&lt; endl;
	}
	for( int i=0; i&lt;3; i++ ){
		cout &lt;&lt; "input a data to remove:" &lt;&lt; endl;
		cin &gt;&gt; d;
		ol.erase( d );
		cout &lt;&lt; ol.size() &lt;&lt; ol &lt;&lt; endl;
	}
	cout &lt;&lt; "is empty?" &lt;&lt; ol.empty() &lt;&lt; endl;
	ol.clear();
	cout &lt;&lt; "is empty?" &lt;&lt; ol.empty() &lt;&lt; endl;
	cout &lt;&lt; ol.size() &lt;&lt; ol &lt;&lt; endl;
	return 0;
}
</pos;></iostream><img src ="http://www.cppblog.com/aiest/aggbug/6901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/aiest/" target="_blank">我爱c++</a> 2006-05-10 23:28 <a href="http://www.cppblog.com/aiest/archive/2006/05/10/6901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>输入年月日得到当日的星期</title><link>http://www.cppblog.com/aiest/archive/2006/05/10/6849.html</link><dc:creator>我爱c++</dc:creator><author>我爱c++</author><pubDate>Tue, 09 May 2006 23:39:00 GMT</pubDate><guid>http://www.cppblog.com/aiest/archive/2006/05/10/6849.html</guid><wfw:comment>http://www.cppblog.com/aiest/comments/6849.html</wfw:comment><comments>http://www.cppblog.com/aiest/archive/2006/05/10/6849.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/aiest/comments/commentRss/6849.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/aiest/services/trackbacks/6849.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="90%" align="center" border="0">
				<tbody>
						<tr>
								<td style="WIDTH: 520px; WORD-BREAK: break-all" width="100%">#include&lt;iostream&gt;<br />int nian(int year);<br />int yue(int year,int month);<br />using namespace std;<br />//-------------------------------<br />void main()<br />{<br />    <br />        int year,month,day,sum,pp;<br />char x;<br />cout&lt;&lt;"Please input a day:year/month/day!";<br />cin&gt;&gt;year&gt;&gt;x&gt;&gt;month&gt;&gt;x&gt;&gt;day;<br />sum=nian(year)+yue(year,month)+day;<br />pp=sum%7;<br /><br />switch(pp)<br />{<br />case 0:<br />    cout&lt;&lt;"Sunday"&lt;&lt;endl;<br />    break;<br />case 1:<br />    cout&lt;&lt;"Monday"&lt;&lt;endl;<br />    break;<br />case 2:cout&lt;&lt;"Tuesday"&lt;&lt;endl;<br />    break;<br />case 3:cout&lt;&lt;"Wednesday"&lt;&lt;endl;<br />    break;<br />case 4:cout&lt;&lt;"Thursday"&lt;&lt;endl;<br />    break;<br />case 5:cout&lt;&lt;"Fiday"&lt;&lt;endl;<br />    break;<br />case 6:cout&lt;&lt;"Saturday"&lt;&lt;endl;<br />    break;<br /><br />}<br />}<br />//-------------------------------------------<br /><br /><br />int nian(int year)<br />{<br />int i,sum_year=0;<br />for(i=1;i&lt;year;i++)<br />{<br />if((i%4==0&amp;&amp;i%100!=0)||(i%400==0))<br />sum_year+=366;<br />else<br />sum_year+=365;<br />}<br />return (sum_year);<br />}<br />//-------------------------------------------<br />int yue(int year,int month)<br />{int yue1,day1;<br />yue1=month-1;<br />if((year%4==0&amp;&amp;year%100!=0)||(year%400==0))<br />{<br />switch(yue1)<br />{<br />case 1:day1=31;break;<br />case 2:day1=31+29;break;<br />case 3:day1=31+29+31;break;<br />case 4:day1=31+29+31+30;break;<br />case 5:day1=31+29+31+30+31;break;<br />case 6:day1=31+29+31+30+31+30;break;<br />case 7:day1=31+29+31+30+31+30+31;break;<br />case 8:day1=31+29+31+30+31+30+31+31;break;<br />case 9:day1=31+29+31+30+31+30+31+31+30;break;<br />case 10:day1=31+29+31+30+31+30+31+31+30+31;break;<br />case 11:day1=31+29+31+30+31+30+31+31+30+31+30;break;<br />case 12:day1=31+29+31+30+31+30+31+31+30+31+30+31;break;<br />}<br />}<br />else<br />{<br />switch(yue1)<br />{<br />case 1:day1=31;break;<br />case 2:day1=31+28;break;<br />case 3:day1=31+28+31;break;<br />case 4:day1=31+28+31+30;break;<br />case 5:day1=31+28+31+30+31;break;<br />case 6:day1=31+28+31+30+31+30;break;<br />case 7:day1=31+28+31+30+31+30+31;break;<br />case 8:day1=31+28+31+30+31+30+31+31;break;<br />case 9:day1=31+28+31+30+31+30+31+31+30;break;<br />case 10:day1=31+28+31+30+31+30+31+31+30+31;break;<br />case 11:day1=31+28+31+30+31+30+31+31+30+31+30;break;<br />case 12:day1=31+28+31+30+31+30+31+31+30+31+30+31;break;<br />}<br />}<br /><br />return (day1);<br />}</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cppblog.com/aiest/aggbug/6849.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/aiest/" target="_blank">我爱c++</a> 2006-05-10 07:39 <a href="http://www.cppblog.com/aiest/archive/2006/05/10/6849.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>