《数据结构》实验指导书
来源: 发布时间:2006-5-29 16:53:37 点击:
 
{
        int a[10];   //定义一个数据元素为10个的数组

        for (int i = 0; i < 10; i ++)
                a[i] = i * 2;  //给a[]赋值
        list la(a, 10);   //建立以a[]中数据元素为单链表数据元素的单链表la
        la.show();   //在屏幕上显示单链表la中的数据元素
  for (int j = 0; j < 10; j ++)
   a[j] = j * 3;  //给a[]重新赋值
  list lb(a, 10);   //建立以a[]中数据元素为单链表数据元素的单链表lb
  lb.show();     //在屏幕上显示单链表lb中的数据元素

  list lc;     //定义合并后的单链表
  node* pa = la.head -> next;
  node* pb = lb.head -> next;
  node* pc = lc.head -> next;
  while (pa != NULL || pb != NULL)//循环执行合并操作,合并后的数据保存在单链表lc中
  {
   if (((pa != NULL) && (pa -> data > pb -> data)) || (pa == NULL))
          {
                  lc.head -> next = pb;
                  pb = pb -> next;
                  lc.head -> next -> next = pc;
                  pc = lc.head -> next;
                }
                else
                {
                        lc.head -> next = pa;
                        pa = pa -> next;
                        lc.head -> next -> next = pc;
                        pc = lc.head -> next;
                }
        }
    lc.show();    //显示合并后的单链表lc中的数据元素
}

void exercise2(void)  //实验二的函数实现
{
        int a[10];     //定义一个数据元素为10个的数组
        for (int i = 0; i < 10; i ++) 
              a[i] = i * 2 + 1;    //给a[]赋值
      list la(a, 10);    //建立以a[]中数据元素为单链表数据元素的单链表la
      la.show();      //在屏幕上显示单链表la中的数据元素
      for (int k = 0; k < 10; k ++)
       a[k] = k * 3;      //给a[]赋值
      list lb(a, 10);         //建立以a[]中数据元素为单链表数据元素的单链表la
      lb.show();           //在屏幕上显示单链表lb中的数据元素

      node* pa = la.head -> next;
      node* pb = lb.head -> next;
      node* pc = NULL;
      while ((pa != NULL) && (pb != NULL))//函数实现求交集操作
      {
              if (pa -> data < pb -> data)
                      pa = pa -> next;
              else if (pa -> data > pb -> data)
                   pb = pb -> next;
           else // (pa -> data == pb -> data)
           {
                   if (pc == NULL)
                   {
                           pc = la.head -> next;
                           pc -> data = pa -> data;
                   }
                   else if (pa -> data != pc -> data)
                   {
                           pc = pc -> next;
                           pc -> data = pa -> data;

本新闻共5页,当前在第2页  1  2  3  4  5