C和C++经典面试题(面试必备)(7)

2025-07-12

#include #include #define LEN 8

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}};


C和C++经典面试题(面试必备)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:项目试生产方案:原稿

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219