forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-29 6c7e61a54ef9b96f79704f0b965664e89f57dd52
Soft/linked_list.c
New file
@@ -0,0 +1,124 @@
#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;
//         }
//      }
//   }
}