谁能帮我把这个C++的程序译成C的程序?

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:41:01
#include <iostream>
#include <deque>
using namespace std;

struct Node
{
double val;
int deep;
int order;
};

void print(Node p)
{

//printf("%d % d %f\n", p.deep, p.order-1, p.val);
cout << p.deep << "," << p.order-1 << "," << p.val << endl;
}

int main()
{
int s0,t;
deque<Node> deq;
double u;
scanf("%d%lf%d",&s0,&u,&t);
++t;
int *s = new int[t];
for( int i= 0; i < t; ++i )
s[i] = 0;
Node node;
node.val = s0;
node.deep = 0;
node.order = 1;
deq.push_back(node);
s[0] = 1;
while( !deq.empty() )
{
Node temp;
temp = deq.front();
deq.pop_front();
int dep

等价的C程序如下,deque类的front(),push_back()等方法由等价的C自定义函数实现。

//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

typedef struct Node
{
double val;
int deep;
int order;
struct Node *next;
} Node;
typedef struct deque{
int count;
Node *head;
} deque;

void print(Node *p)
{

printf("%d %d %f\n", p->deep, p->order-1, p->val);

}
void push_back(deque *dq,Node no)
{
Node *t,*t2,*a=malloc(sizeof(Node));
a->val =no.val ;
a->deep =no.deep ;
a->order =no.order ;
dq->count++;
if (dq->head ==NULL) {
dq->head =a;
}
else{
t2=t=dq->head ;
while (t !=NULL){
t2=t;
t=t->next ;
}
a->next =t ;
t2->next =a;
}
}
Node *front(deque *a)
{