最近复习数据结构,这个主题参考了《LINUX一站式编程》,有一些改动。这个代码在linux 64位机器使用gcc下编译通过,在windows 32位机器使用visual studio 6.0编译通过,但是,在linux 64机器使用g++无法编译通过。报错出现在headsentinel和tailsentinel的定义部分,具体原因还没有弄清楚。。。。
函数的定义文件如下
#ifndef LINKEDLISTDEQUE_H
#define LINKEDLISTDEQUE_H
typedef struct node *link;
struct node{
unsigned char item;
link prev;
link next;
};
link make_node(unsigned char item);
void free_node(link p);
link search_1(unsigned char key);
void insert_at_head(link p);
void insert_at_tail(link p);
void delete_node_1(link p);
void delete_node_2(link p);
void traverse(void (*visit)(link));
void destroy(void);
void push(link p);
link pop(void);
void enqueue(link p);
link dequeue(void);
int test();
#endif
函数的实现文件如下
#include <stdlib.h>
#include "linkedlistdeque.h"
struct node tailsentinel;
struct node headsentinel={0