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

📄 memorylink.cpp

📁 模拟动态存储管理 一、 题目 编制一个模拟动态存储管理的程序
💻 CPP
字号:
//程序:memorylink.cpp
//功能:用链表类LINKLIST模拟动态内存管理

#include”LINKLIST.CPP”

//FUNCTION:按输入起始地址的大小升序排列创建一条链
//PARAMETER:list为指向要创建的链表对象的指针,is_combine为是否在创建时结合
相邻的节点,1为结合,其他值为不结合,缺省为结合
void create(LINKLIST* list, int is_combine=1)
{NODE *insertor, *pre; 
insertor=new NODE;
cout<<"\nEnter address and lenght:";
cin>>insertor->element1>>insertor->element2;
  while(insertor->element1>0&&insertor->element2>0)
  {pre=list->insert(insertor);
    if (is_combine==1)
    {pre=list->combine(pre, insertor);
    list->combine(pre, pre->next);
    }
list->print();
insertor=new NODE;
cout<<"\nEnter address and lenght:";
cin>>insertor->element1>>insertor->element2;
}
if(list->get_top()==NULL)  cout<<"\nHaven initialized!";
else cout<<"\nInitializationm complete!\n";
}

void main()
{NODE *temp_HA, *pre_HA ;
unsigned long address;
LINKLIST *HA,*HB;
HA=new LINKLIST;  HB=new LINKLIST;
cout<<"\nCreate HA:\n" ;
create(HA);
cout<<"\nCreate HB:\n" ;
create(HB,0);
  do
  {cout<<"\nEnter address(enter 0 to end) to delete it from HB:";
  cin>>address;
   if (address==0)                    //输入地址为0时结束
   {cout<<"\ndeleting end!";
    cout<<"\nHA:";   HA->print();
    cout<<"\nHB:";   HB->print();
   break;
   } else {
     temp_HA=HB->del(address);  
     if(temp_HA!=NULL)
     {cout<<"\nAfter deleting , HB :\n";
     HB->print();
     pre_HA=HA->insert(temp_HA);
     pre_HA=HA->combine(pre_HA, temp_HA);
     HA->combine(pre_HA, pre_HA->next);
     } else cout<<"\nAdress not found!";
    cout<<"\nHA:";   HA->print();
    cout<<"\nHB:";   HB->print();
   }
  } while(HB->get_top()!=NULL);
}

⌨️ 快捷键说明

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