正在加载图片...
提示 cin > value 输入 while( value I= revalue)i 输入有效 q= New Node( value ) ∥建立包含whe的新结点 if (first== NULL )first=current ∥空表时,新结点成为链表第一个结点 else i current->link= g: current=9:) 非空表时,新结点链入链尾 cin > values ∥再输入 current->link= NULL ∥链尾封闭 void List: PrintList (t 输出链表 cout < nThe List is: \n"; while(p I= NULL)i cout < p->data<<; p=p->link; j cout<<“n’; t List: Max( lisiNode )i ∥递归算法:求链表中的最大值 if(->link==NULL)return/->data; ∥递归结束条件 int temp= Max(f-> link ) ∥在当前结点的后继链表中求最大值 if(->data >temp )returnf->data; ∥如果当前结点的值还要大,返回当前检点值 lse return temp; ∥否则返回后继链表中的最大值 t List: Num( ListNode i ∥递归算法:求链表中结点个数 if(f==NULL)return 0; 空表,返回0 return 1+ Num(-> ink ) ∥否则,返回后继链表结点个数加1 float List: Ag( ListNode int& n)i ∥递归算法:求链表中所有元素的平均值 ∥链表中只有一个结点,递归结束条件 in=l: return( float )(->data ):1 else( float Sum Ag(f->link, n)*n; n++: return(->data Sum)/n;) #include"RecurveList h ∥定义在主文件中 int main( int argc, chararg[i List test; int finished; cout<<“输入建表结束标志数据:”; 77 cout << "Input your data:\n"; //提示 cin >> value; //输入 while ( value != retvalue ) { //输入有效 q = NewNode ( value ); //建立包含 value 的新结点 if ( first == NULL ) first = current = q; //空表时, 新结点成为链表第一个结点 else { current->link = q; current = q; } //非空表时, 新结点链入链尾 cin >> value; //再输入 } current->link = NULL; //链尾封闭 } void List :: PrintList ( ) { //输出链表 cout << "\nThe List is : \n"; ListNode *p = first; while ( p != NULL ) { cout << p->data << ' '; p = p->link; } cout << ‘\n’; } int List :: Max ( ListNode *f ) { //递归算法 : 求链表中的最大值 if ( f ->link == NULL ) return f ->data; //递归结束条件 int temp = Max ( f ->link ); //在当前结点的后继链表中求最大值 if ( f ->data > temp ) return f ->data; //如果当前结点的值还要大, 返回当前检点值 else return temp; //否则返回后继链表中的最大值 } int List :: Num ( ListNode *f ) { //递归算法 : 求链表中结点个数 if ( f == NULL ) return 0; //空表, 返回 0 return 1+ Num ( f ->link ); //否则, 返回后继链表结点个数加 1 } float List :: Avg ( ListNode *f , int& n ) { //递归算法 : 求链表中所有元素的平均值 if ( f ->link == NULL ) //链表中只有一个结点, 递归结束条件 { n = 1; return ( float ) (f ->data ); } else { float Sum = Avg ( f ->link, n ) * n; n++; return ( f ->data + Sum ) / n; } } #include "RecurveList.h" //定义在主文件中 int main ( int argc, char* argv[ ] ) { List test; int finished; cout << “输入建表结束标志数据 :”;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有