📄 single_list.c
字号:
#include "single_list.h"#include <stdio.h>#include <stdlib.h>Node_sl *CreateNew(void) { Node_sl* head; head = malloc(sizeof(Node_sl)); head->id = -1; head->type = NOTYPE; head->next = NULL; head->size = 0; return head;}int Insert_hs (int id,int type,int newsize ,Node_sl* head) { Node_sl *tmp , *newNode; tmp = Find_sl(id,head); if(tmp->id == id) /*no dublicates*/ return 0; newNode = malloc(sizeof(Node_sl)); newNode->next = tmp->next; tmp->next = newNode; newNode->id = id; newNode->type = type; newNode->size = newsize; return 1;}int Insert_sl (int id,int type ,Node_sl* head){ Node_sl *tmp , *newNode; tmp = Find_sl(id,head); if(tmp->id == id) /*no dublicates*/ return 0; newNode = malloc(sizeof(Node_sl)); newNode->next = tmp->next; tmp->next = newNode; newNode->id = id; newNode->type = type; newNode->size = 0; return 1;}int Delete_sl(int id , Node_sl* head) { Node_sl *tmp , *prev; tmp = head; prev = head; while(tmp) { if(tmp->id == id){ prev->next = tmp->next; /*found..delete it*/ free(tmp); return 1; } prev = tmp; tmp = (Node_sl*)tmp->next; } return 0;} Node_sl *Find_sl(int id , Node_sl* head) { Node_sl* tmp = head; Node_sl* prev = head; if(!head->next) return head; while(tmp) { if(tmp->id == id) return tmp; tmp = tmp->next; if(!tmp) return prev; if(tmp->id > id) { return prev; } prev = tmp; } return prev;}void print_sl(Node_sl* head) { Node_sl* tmp = head; while(tmp) { if(tmp->id == -1){ tmp = tmp->next; continue; } printf("|File id %d with type %d | ",tmp->id,tmp->type); tmp = tmp->next; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -