#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) { // ALARM_NODE_T * tail, * now_ptr; // // if(alarm_id != ALARM_ID_NORMAL) // { // alarm_list_cnt++; // if(*ppList == NULL) // { // *ppList = Alarm_List_Node_Add(alarm_id); // } // else // { // //ÅжÏÁ´±íÖÐÊÇ·ñÒѾ­´æÔڸñ¨¾¯id£¬ÒѾ­´æÔÚ²»ÔÙ²åÈëÁ´±í // do{ // if(now_ptr->list_data == alarm_id){ // return; // }else{ // now_ptr = now_ptr->alarm_list_next; // } // // }while(now_ptr != NULL); // // 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 != ALARM_ID_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; // } // } // } }