函数形参给我们的方便

     以前在写程序的时候,觉得c语言的函数形参总是给我了不便,因为他修改的只是实参的一个样本,实参并不受影响,如果想实参也随之改变可以使用指针,最近看了一个小程序,却巧妙地应用了实参不受影响这一点:

    在c++里我们可以为队列定义如下

class Queue
{
private:
int front, rear;
public:
void enQueue(type x);
void deQueue();
type getFront();
bool isEmpty();

}

如果用这个类实现判断两个队列是否相等,可能会比较麻烦,因为判断相等不能改变原来的结构,但是这个类没给什么成员可以简单的实现这一点。

     但如果有这样一个c结构体

struct Queue

{

int front ,rear;

}

使用这个结构体的函数有

void enQueue(Queue,type x);
void deQueue(Queue);
type getFront(Queue);
bool isEmpty();

现在可以轻松地实现判断相等操作

bool equal()

{

 bool flag = true;

 while( ! isEmpty(Q1) && ! isEmpty(Q2))

  {

  if(getFront(Q1) != getFront(Q2))

    flag = false;

  }

  if(isEmpty(Q1) || isEmpty(Q2)  || flag == false)

   return false;

  else 

  return true;

}

 

注意这里没有更改原队列,equal函数操作的只是其副本而已

posted @ 2011-11-06 22:30  没出没  阅读(374)  评论(4编辑  收藏  举报