📄 fcfs.cpp
字号:
// fcfs.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
typedef struct _Node {
double arrive_time;
double exe_time;
struct _Node * next;
} node;
node * create_list()
{
char buf[256];
double reach_time;
double exe_time;
char *preach,*pexe;
FILE *fp =NULL;
fp = fopen("c:\\fifo.dat","r");
if (fp ==NULL)
{
perror("fopen");
exit(1);
}
node * pHead = (node *)malloc(sizeof(node));
node *head = pHead;
if (pHead == NULL)
{
perror("malloc:");
exit(1);
}
while(fgets(buf,256,fp))
{
preach = strtok(buf," ");
pexe = strtok(NULL," ");
node *newnode =(node *)malloc(sizeof(node));
if (newnode == NULL)
{
perror("malloc");
exit(1);
}
newnode->arrive_time = atof(preach);
newnode->exe_time = atof(pexe);
pHead->next = newnode;
pHead = newnode;
}
node *temp = head;
head = head->next;
free(temp);
pHead->next = NULL;
fclose(fp);
return head;
}
node * sort_list(node *pHead)
{
double min;
node * p1,*p2;
p1 = pHead;
int node_count = 0;
while(p1->next)
{
node_count++;
p1=p1->next;
}
min = p1->arrive_time;
p1 = pHead;
node * newhead = (node *)malloc(sizeof(node));
node *head = newhead;
head = pHead;
node *poldhead;
while(node_count >1)
{
p1=pHead;
while(p1->next != NULL)
{
if (min >p1->next->arrive_time)
{
min = p1->next->arrive_time;
}
p1=p1->next;
}
p1=p2=pHead;
while((p1->arrive_time != min)&&(p1->next!=NULL))
{
if((p1 == pHead)&&(p1->arrive_time == min))
{
poldhead = head;
pHead=pHead->next;
head->next=p1;
head=p1;
break;
}
if(p1->arrive_time == min)
{
p2->next=p1->next;
head->next=p1;
head=p1;
break;
}
p2=p1;
p1=p1->next;
}
if ((p1->next == NULL)&&(p1->arrive_time == min))
{
p2->next=NULL;
head->next=p1;
head = p1;
}
node_count--;
}
poldhead=poldhead->next;
return poldhead;
}
void output_list(node * pHead)
{
while(pHead->next!=NULL)
{
cout<<"arrive_time is"<<pHead->arrive_time<<endl;
pHead=pHead->next;
}
}
int main(int argc, char* argv[])
{
node * pHead = create_list();
pHead = sort_list(pHead);
output_list(pHead);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -