#include
typedef struct node //队列结点 { int data;
struct node * next; }node,*QueueNode;
typedef struct Queue //队列 {
QueueNode front; QueueNode rear; }Queue,*QueueLink;
QueueLink CreateNullQueue( QueueLink &Q) //{ Q = NULL;
Q = ( QueueLink )malloc( sizeof( Queue ) ); if( NULL == Q ) {
printf(\return NULL; }
创建空队列 16
Q->front = ( QueueNode )malloc( sizeof( node ) ); Q->rear = ( QueueNode )malloc( sizeof( node ) ); if( NULL == Q->front || NULL == Q->rear ) {
printf(\return NULL; } Q
->rear = NULL;
Q->front->next= Q->rear; return Q; }
int lenData( node data[], int len) //计算队列中各结点的数据的最大位数 {
int m = 0; int temp = 0; int d;
for( int i = 0; i < len; i++) {
d = data[i].data; while( d > 0)
{ d /= 10; temp ++; }
if( temp > m ) { m = temp; } temp = 0; } return m; }
QueueLink Push( QueueLink &Q , node node ) //将数据压入队列 {
QueueNode p1,p;
p =( QueueNode )malloc( sizeof( node ) ); if( NULL == p ) {
printf(\return NULL; }
p1 = Q->front;
while(p1->next != NULL) {
p1 = p1->next; } p
->data = node.data; p1->next = p; p->next = Q->rear; 17
return NULL; }
node Pop( QueueLink &Q) //数据出队列 {
node temp; temp.data = 0; temp.next = NULL; QueueNode p; p = Q->front->next; if( p != Q->rear ) {
temp = *p;
Q->front->next = p->next; free( p );
p = NULL; }
return temp; }
int IsEmpty( QueueLink Q) {
if( Q->front->next == Q->rear ) { return 0; } return 1; }
int main( void ) {
int i = 0;
int Max = 0; //记录结点中数据的最大位数 int d = 10; int power = 1; int k = 0;
node Array[LEN] ={{450, NULL}, {32,NULL}, { 781,NULL}, { 57 ,NULL},组
{ 145,NULL},{ 613,NULL},{ 401,NULL},{ 594,NULL}};
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C和C++经典面试题(面试必备)(7)在线全文阅读。
相关推荐: