| New file |
| | |
| | | #include "linked_list.h" |
| | | #include "stdlib.h" |
| | | |
| | | |
| | | ALARM_NODE_T * pList_head = NULL; |
| | | uint8_t alarm_list_cnt = 0; |
| | | |
| | | ///*Á´±íÍ·Êý¾Ý¹¹Ôì*/ |
| | | //ALARM_NODE_T * Alarm_List_Node_HeadCreated(ALARM_NODE_T * pHead,SYS_ALARM_VALVE_T alarm_id) |
| | | //{ |
| | | // if(pHead->list_data == AV_NORMAL && pHead->alarm_list_next == NULL) |
| | | // { |
| | | // pHead->list_data = alarm_id; |
| | | // } |
| | | // return pHead; |
| | | //} |
| | | /*ÉêÇ붯̬Á´±í¿Õ¼ä*/ |
| | | ALARM_NODE_T * Alarm_List_Node_Add(SYS_ALARM_VALVE_T alarm_id) |
| | | { |
| | | ALARM_NODE_T * ptr = (ALARM_NODE_T * )malloc(ALARM_LIST_NODE_LEN); |
| | | if(ptr != NULL) |
| | | { |
| | | ptr->list_data = alarm_id; |
| | | ptr->alarm_list_next = NULL; |
| | | return ptr; |
| | | } |
| | | return NULL; |
| | | } |
| | | //µ¥Á´±íβ²å |
| | | //Ë«ÖØÖ¸Õ룺ָÏòÖ¸ÕëµÄÖ¸Õ룬Èç¹ûÐè¸Ä±äÖ¸ÕëµØÖ·µÄÖµ£¬Ôò¿ÉÓÃË«ÖØÖ¸Õë |
| | | void Alarm_List_Node_PushBack(ALARM_NODE_T ** ppList,SYS_ALARM_VALVE_T alarm_id) |
| | | { |
| | | if(alarm_id != AV_NORMAL) |
| | | { |
| | | alarm_list_cnt++; |
| | | if(*ppList == NULL) |
| | | { |
| | | *ppList = Alarm_List_Node_Add(alarm_id); |
| | | } |
| | | else |
| | | { |
| | | ALARM_NODE_T * tail = *ppList; |
| | | while(tail->alarm_list_next) |
| | | tail = tail->alarm_list_next; |
| | | tail->alarm_list_next = Alarm_List_Node_Add(alarm_id); |
| | | } |
| | | } |
| | | } |
| | | //µ¥Á´±íµÄβɾ |
| | | void Alarm_List_Node_PopBack(ALARM_NODE_T ** ppList) |
| | | { |
| | | ALARM_NODE_T * tail = *ppList; |
| | | while (tail->alarm_list_next->alarm_list_next) |
| | | { |
| | | tail = tail->alarm_list_next; |
| | | } |
| | | free(tail->alarm_list_next); |
| | | tail->alarm_list_next = NULL; |
| | | } |
| | | ////µ¥Á´±í²éÕÒ |
| | | //ALARM_NODE_T * Alarm_List_Node_Find(ALARM_NODE_T * pList,SYS_ALARM_VALVE_T alarm_id) |
| | | //{ |
| | | // ALARM_NODE_T * cur_ptr = pList; |
| | | // while(cur_ptr) |
| | | // { |
| | | // if(cur_ptr->list_data == alarm_id) |
| | | // return cur_ptr; |
| | | // cur_ptr = cur_ptr->alarm_list_next; |
| | | // } |
| | | // return NULL; |
| | | //} |
| | | //µ¥Á´±íÖмäɾ³ý |
| | | void Alarm_List_Node_Deleted(ALARM_NODE_T ** ppHeadList,SYS_ALARM_VALVE_T alarm_id) |
| | | { |
| | | if(alarm_id != AV_NORMAL) |
| | | { |
| | | ALARM_NODE_T * last_ptr,* now_ptr; |
| | | if(*ppHeadList == NULL) |
| | | return; |
| | | else |
| | | { |
| | | now_ptr = *ppHeadList; |
| | | while(now_ptr->alarm_list_next != NULL && now_ptr->list_data != alarm_id) |
| | | { |
| | | last_ptr = now_ptr; |
| | | now_ptr = now_ptr->alarm_list_next; |
| | | } |
| | | if(now_ptr->list_data == alarm_id) |
| | | { |
| | | alarm_list_cnt--; |
| | | if(now_ptr == *ppHeadList) |
| | | *ppHeadList = now_ptr->alarm_list_next; |
| | | else |
| | | last_ptr->alarm_list_next = now_ptr->alarm_list_next; |
| | | free(now_ptr); |
| | | now_ptr = NULL; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |