📄 memory.java
字号:
import java.util.*;
public class Memory {
MemNode startNode = new MemNode();
MemNode endNode = new MemNode();
Vector memVec = new Vector();
Memory(int Vol){
this.startNode.volNo=0;
this.endNode.volNo=Vol;
this.startNode.nextNode=endNode;
this.endNode.nextNode=null;
this.startNode.state=true;
this.endNode.state=false;
this.startNode.vol=endNode.volNo-startNode.volNo;
this.endNode.vol=0;
}
void Apply(String ProName,int Vol){
MemNode searchNode = new MemNode();
MemNode tempNode = new MemNode();
tempNode.nextNode=this.startNode;
for(int i=0;i<this.memVec.size()+1;i++){
if(tempNode.nextNode.state && (tempNode.nextNode.vol>=Vol)){
tempNode.nextNode.proName=ProName;
tempNode.nextNode.state=false;
if(tempNode.nextNode.vol!=Vol){
searchNode.nextNode=tempNode.nextNode.nextNode;
tempNode.nextNode.nextNode=searchNode;
searchNode.volNo=tempNode.nextNode.volNo+Vol;
tempNode.nextNode.vol=Vol;
searchNode.vol=searchNode.nextNode.volNo-searchNode.volNo;
searchNode.state=true;
this.memVec.add(searchNode);
}break;
}
else{
tempNode.nextNode=tempNode.nextNode.nextNode;
if(tempNode.nextNode==this.endNode){
System.out.println(ProName+" Can't Get Enough Memory");
break;
}
}
}
}
void Free(String ProName){
MemNode tempNode = new MemNode();
tempNode.nextNode=this.startNode;
int size=this.memVec.size();
if(this.startNode.proName==ProName){
this.startNode.state=true;
if(this.startNode.nextNode.state==true){
this.startNode.vol=this.startNode.vol+this.startNode.nextNode.vol;
this.startNode.nextNode=this.startNode.nextNode.nextNode;
this.memVec.remove(this.startNode.nextNode);
}
}
else{
for(int i=0;i<size;i++){
if(tempNode.nextNode.nextNode.proName==ProName){
tempNode.nextNode.nextNode.state=true;
if(tempNode.nextNode.nextNode.nextNode.state==true){
tempNode.nextNode.nextNode.vol+=tempNode.nextNode.nextNode.nextNode.vol;
tempNode.nextNode.nextNode.nextNode=tempNode.nextNode.nextNode.nextNode.nextNode;
this.memVec.remove(tempNode.nextNode.nextNode.nextNode);
}
if(tempNode.nextNode.state==true){
tempNode.nextNode.vol+=tempNode.nextNode.nextNode.vol;
tempNode.nextNode.nextNode=tempNode.nextNode.nextNode.nextNode;
this.memVec.remove(tempNode.nextNode.nextNode);
}break;
}
else{
tempNode.nextNode=tempNode.nextNode.nextNode;
if(tempNode.nextNode.nextNode==this.endNode){
System.out.println(ProName+" Is Not Found");
break;
}
}
}
}
}
void Show(){
MemNode tempNode = new MemNode();
tempNode.nextNode = this.startNode;
for(int i=0;i<this.memVec.size()+1;i++){
if(tempNode.nextNode.vol!=0){
if(!tempNode.nextNode.state){
System.out.println(((Integer)tempNode.nextNode.volNo).toString()+"-"+((Integer)(tempNode.nextNode.volNo+tempNode.nextNode.vol)).toString()+" "+tempNode.nextNode.proName);
}
else{
System.out.println(((Integer)tempNode.nextNode.volNo).toString()+"-"+((Integer)(tempNode.nextNode.volNo+tempNode.nextNode.vol)).toString()+" is empty");
}
}
tempNode.nextNode=tempNode.nextNode.nextNode;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -