摘要: 队列,与栈相同,实现一个队列同样需要顺序表活者链表作为基础。队列是一种先进先出的线性表。数据只能从队尾进入队列,从对头出队列,这里重点说一下链队列。首先说 链队列的实现。定义队列typedef struct QNode{ ElemType data; struct QNode *next;} QNode , *QueuePtr;typedef struct{ QueuePtr front; //队头指针 QueuePtr rear; //队尾指针}LinkQueue;初始化队列void initQueue(LinkQueue *q){ /*初始化一个... 阅读全文
posted @ 2012-02-16 11:21 Mr.阿拉丁 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 栈,是一个先进后出的线性表。最开始栈中不含有任何数据,叫做空栈,此时栈顶就是栈底。线性表有两种存储形式,及顺序表存储和链表存储。一般的栈是用顺序表的形式实现的定义一个顺序栈typedef struct{ ElemType *base; ElemType *top; int stacksize;}sqStack;创建一个栈initStack(sqStack *s){ /*内存中开辟一段连续空间作为栈空间,首地址赋值给s->base*/ s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType)... 阅读全文
posted @ 2012-02-15 22:45 Mr.阿拉丁 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 定义一张顺序表就是在内存中开辟一段连续的存储空间,并给他取个名字。定义顺序列表的方法:一、静态定义;二、动态定义;静态定义#define MaxSize 100ElemType Sqlist[MaxSize];int len;动态定义#define MaxSize 100typedef struct{ ElemType *elem; int length; int listsize;} Sqlist;void initSqlist(Sqlist *L){ L->el... 阅读全文
posted @ 2012-02-15 19:26 Mr.阿拉丁 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 一、BDATA 区下面的代码访问状态寄存器的特定位,把访问定义在DATA 段中的一个字节和通过位名和位号访问同样的可位寻址字节的位的代码对比。注意:对变量位进行寻址产生的汇编代码比检测定义在DATA 段的状态字节位所产生的汇编代码要好,如果你对定义在 BDATA 段中的状态字节中的位采用偏移量进行寻址,而不是用先前定义的位变量名时,编译后的代码是错误的下面的例子中 use_bitnum_status 的汇编代码比 use_byte_status 的代码要大1 //定义一个字节宽状态寄存器2 unsigned char data byte_status=0x43;3 4 //定义一个可位寻址状. 阅读全文
posted @ 2012-02-13 22:26 Mr.阿拉丁 阅读(1657) 评论(0) 推荐(1) 编辑
摘要: 例:应用程序的 2 个任务使用了延时函数 OSTimeDly () 进行延时,在任务 MyTask 中还调用了函数 OSTimeDlyResume () 取消了任务 YourTask 的延时(为了观察任务YourTask 的延时时间的变化,在钩子函数 OSTimeTickHook () 输出了任务 YourTask在延时时间到时的时钟节拍数)。 OSTimeTickHook钩子函数程序如下#if OS_CPU_HOOKS_EN > 0 INT8U d=0;INT8U l=0;INT8U n=0;INT8U m=0; INT16U tt=1; ... 阅读全文
posted @ 2012-02-10 11:30 Mr.阿拉丁 阅读(2643) 评论(0) 推荐(1) 编辑