⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recurve.txt

📁 数据结构的c++实现,源代码全部在C++builder中运行.第8部分
💻 TXT
字号:
//递归运算(栈的应用)Recurve.cpp
#include <iostream.h>
#include <iomanip.h>
class list;
class listnode{
  friend class list;
  int data;
  listnode *link;
  listnode(int value,listnode *zz):data(value),link(zz)
   {}
};
class list{
  listnode *first;
  //累加和
  long sum(listnode *p);
  //计数器
  long count(listnode *p);
public:
  list():first(NULL){}
  //生成栈
  void add(int value);
  //显示栈中数据
  void display();
  //获取累加和
  long get_sum(){return sum(first);}
  //获取数据个数
  long get_count(){return count(first);}
  //求平均
  float get_avg()
  {return (float)sum(first)/count(first);}
};
void list::add(int value){
  listnode *p=new listnode(value,first);
  if(p!=NULL) first=p;
  else cerr <<"Memory Error!" <<endl;
}
void list::display(){
  cout<<"数据域的各个值:";
  for(listnode *p=first;p!=NULL;p=p->link)
    cout<<setw(2)<<p->data;
  cout <<endl;
}
long list::sum(listnode *p){
  if(p->link==NULL) return p->data;
  else return p->data+sum(p->link);
}
long list::count(listnode *p){
  long n=1;
  if(p->link==NULL){return 1;}
  else{return count(p->link)+n;}
}
void main()
{cout<<"Recurve.cpp运行结果:\n";
 list a;
 a.add(1);
 a.add(2);
 a.add(3);
 a.add(4);
 a.display();
 cout<<"累加和sum="<<a.get_sum()<<endl;
 cout<<"数据个数count="<<a.get_count()<<endl;
 cout<<"平均值avg="<<a.get_avg()<<endl;
 cin.get();}
Recurve.cpp运行结果:
数据域的各个值: 4 3 2 1
累加和sum=10
数据个数count=4
平均值avg=2.5

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -