xx嘻嘻

yaya_lucky 2012-11-23 05:32:53
#include <stdio.h>
#include <stdlib.h>


int Enqueue(char priority[4], int data);
int Dequeue(int* data);
void print();


void main(void)
{
char priority[4];
int data;
int sum = 0;
int l = 0;
int c = 0;

for ( l = 0; l < 10; l++)
{
for ( c = 0; c < 10000; c++)
{
if ((rand() % 3) <= 1)
{
data = rand() % 100;

priority[0] = 'A' + (rand() % 4);
priority[1] = 'A' + (rand() % 4);
priority[2] = 'A' + (rand() % 4);
priority[3] = 'A' + (rand() % 4);

printf("enq%d\t%c%c%c%c\n", data, priority[0], priority[1], priority[2], priority[3]);
Enqueue(priority, data);
}
}

//printf("sum: %d\n", sum);
}
print();
}




#include <stdio.h>
#include <stdlib.h>



typedef struct queue{
char priority[4];
int data;
struct queue *next;
struct queue *prev;
}myqueue;

static myqueue head = {0, 0, NULL, NULL};

int ComparePriority(char *pchar, char *pchar2, int n)
{
int i = 0;

for(i = 0; i < n; i++)
{
if((pchar[i] - pchar2[i]) == 0)
continue;

if((pchar[i] - pchar[i]) < 0)
return 1;
else
return -1;
}

return 0;
}

int Enqueue(char priority[4], int data)
{
myqueue *queue = (myqueue *)malloc(sizeof(myqueue));
int i = 0;
int result = 0;
myqueue *pTemp = NULL;
myqueue *phead = NULL;

if(queue == NULL)
return -1;
//memset(queue, 0x00, sizeof(myqueue));
queue->data = data;
for(i = 0; i < 4; i++)
queue->priority[i] = priority[i];
queue->next = NULL;
queue->prev = NULL;

if((&head)->next == NULL)
{
(&head)->next = queue;
queue->prev = (&head);

return 1;
}
// printf("insert start\n");
phead = (&head)->next;
while(phead != NULL)
{
pTemp = phead;
result = ComparePriority(pTemp->priority, queue->priority, 4);

if(result == 0) //same priority
{
if((queue->data > pTemp->data) || (queue->data == pTemp->data)) //insert after
{

if(pTemp->next == NULL) //pTemp is the last
{
pTemp->next = queue;
queue->prev = pTemp;
break;
}
else if(ComparePriority(pTemp->next->priority, queue->priority, 4) == 0)
{
phead = pTemp->next;
continue;
}
else
{
pTemp->next->prev = queue;
queue->prev = pTemp;
queue->next = pTemp->next;
pTemp->next = queue;
break;
}
}
else
{
queue->next = pTemp;
queue->prev = pTemp->prev;
pTemp->prev->next = queue;
pTemp->prev = queue;
}

break;
}
else if(result == 1) //new higher insert before
{
queue->next = pTemp;
queue->prev = pTemp->prev;
pTemp->prev->next = queue;
pTemp->prev = queue;

break;
}
else // new lower
{
if(pTemp->next != NULL)
{
phead = pTemp->next;
continue;
}
else // can't find lower than queue, insert the last
{
pTemp->next = queue;
queue->prev = pTemp;
break;
}
}

}

// printf("insert end\n");

return 1;
}

void print()
{
myqueue *phead = NULL;
myqueue *pTemp = NULL;
phead = (&head)->next;

while(phead != NULL)
{
pTemp = phead;
printf("%d\t%c%c%c%c\n", pTemp->data, pTemp->priority[0], pTemp->priority[1], pTemp->priority[2], pTemp->priority[3]);
phead = pTemp->next;
}
}

int Dequeue(int* data)
{
myqueue *queue = NULL;

if((&head)->next == NULL)
return -1;

queue = (&head)->next;
(&head)->next = queue->next;
queue->next->prev = &head;
*data = queue->data;
free(queue);
queue = NULL;

return 1;
}

...全文
172 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shirui8653719 2012-11-25
  • 打赏
  • 举报
回复
漫步者、 2012-11-24
  • 打赏
  • 举报
回复
求欣赏,求xx,求嘻嘻
bookc-man 2012-11-24
  • 打赏
  • 举报
回复
newtee 2012-11-24
  • 打赏
  • 举报
回复
cao_julians 2012-11-24
  • 打赏
  • 举报
回复
int Enqueue(char priority[4], int data); 这个声明中的常量4就是一个没有任何意义的成分,你把它改成其它整数或者省略它,看看编译器有什么反应?
appleyk 2012-11-24
  • 打赏
  • 举报
回复
嘻嘻, 好可爱的头像啊~!
wanglu343280746 2012-11-24
  • 打赏
  • 举报
回复
贴了一段代码,然后笑了笑。神马意思
搬砖随想录 2012-11-23
  • 打赏
  • 举报
回复
easyrem 2012-11-23
  • 打赏
  • 举报
回复
我还以为是炫耀、搞笑的帖子呢
L_chxu 2012-11-23
  • 打赏
  • 举报
回复
转角天边 2012-11-23
  • 打赏
  • 举报
回复
上来就一大段代码,你是要干吗
我,还有很多网络上对计算机相关技术兴趣的菜鸟,都希望深入地学习一下,只是苦于不知从何学起,虽然搜索引擎是最好的老师,但是在浩瀚的知识里面,菜鸟跟容易迷失方向,所以,算盘打到众位大牛头上来了,这里也不苛求大牛们告诉我们任何一个方向的详细路线,只是希望学点最基础的,给以后深入或者走不同方向的打打基础,借大牛的一些指导使我们省下走弯路而浪费的宝贵光阴。 本帖注意事项:刚开始的时候你要是不知道怎么学,看了这栋帖子以后,不要冲动地就买好几本相关书籍看。个人推荐先买本《C Primer Plus》看,内容不像国内砖家叫兽写的那样硬邦邦的难理解,其他买多了更容易导致分散学习的精力。还有就是前期不要烦恼该选择学什么编程语言之类的,这根本不是重点,重点是知道编程怎么回事,各种XX语言就好像跑车、商务车、小轿车、公交车等等,它们使用的范围或许有区别,但是,我们重要的是学会开车,懂得开一种车了,再学会开其他车就不是什么难事。嘻嘻,学开车很重要啦,所以大家赶紧学学开车吧,学编程不难,但是如果不动手,就很难学会啦,就好象别人告诉你泡妞技术无数,但是你不跑去搭讪把妹,也是个纸上谈兵的高手。等你学会把妹,泡了个美女到手的时候,进一步结婚、生孩子等等都不是问题啦(好比进一步学习计算机其他东东就容易多啦)。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧