在数据结构C语言版中
使用结点的数据指针是要使用->
结构体中的指针的使用用点
例如:
#include<string.h>
#include<ctype.h> #include<malloc.h> /* malloc()等 */ #include<limits.h> /* INT_MAX等 */ #include<stdio.h> /* EOF(=^Z或F6),NULL */ #include<stdlib.h> /* atoi() */ #include<io.h> /* eof() */ #include<math.h> /* floor(),ceil(),abs() */ #include<process.h> /* exit() */ /* 函数结果状态代码 */ #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 /* #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此行 */ typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */ typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */typedef int QTypeElem;
typedef struct QNode{ QTypeElem data; struct QNode *next;}QNode,*QueuePtr;typedef struct{ QueuePtr front;//头指针 QueuePtr rear;//尾指针}LinkQueue;//初始化一个空的列队
Status InitQueue(LinkQueue &Q){ Q.front =Q.rear =(QueuePtr)malloc(sizeof(QNode)); if(!Q.front ) { exit(OVERFLOW); } Q.front =Q.rear =NULL; return OK;}//销毁一个列队Status DestoryQueue(LinkQueue &Q){ while (Q.front ) { Q.rear =Q.front ->next; if(Q.front ) { free(Q.front ); Q.front =Q.rear ; } } return OK;}//插入新的队尾元素Status EnQueue(LinkQueue &Q,QTypeElem &e){ struct QNode *p; p=(QueuePtr)malloc(sizeof(QNode)); if(!p) { exit(OVERFLOW); } else { p->data=e; p->next=NULL; } Q.rear->next=p; Q.rear=p; return OK;}void main(){
}