这里的-1代表数组里面元素为无效。
根据这个程序的理解,array数组传递进来的数据前面j个都是有效的,第j+1个无效因此array[j]等于-1;
将数据从array拷贝到temp也是一样,把前j个有效数据拷贝到temp,第j+1个temp元素设置为-1;
获得最大值,也只比较有效数组,无效的不比较。
有疑问可以私聊。
linkqueue.h
先条件编译判断data_t是否已经定义,
如果没有定义,就用void * 为data_t,这样在使用的过程中需要强转为void* 类型。
#if data_t_defined == 0
typedef void* data_t;
#endif
typedef struct queuenode{
data_t data;
struct queuenode * next;
}Queuenode, *Quenode;
typedef struct linkqueue{
Quenode front;
Quenode rear;
}Linkqueue, *Linkque;
Linkque queue_create();//创建队列
Quenode queuenode_create(data_t value);//队列内部使用,入队之前动态创建一个元素
int enqueue(Linkque linkque, data_t value);//入队
data_t dequeue(Linkque linkque);//出队
int queue_clear(Linkque linkque);//销毁队列
int queue_empty(Linkque linkque);//清空队列元素