📄 plist.c
字号:
#include <stdio.h>#include "mystdlib.h"#include "error.h"#include "tuple.h"#include "linkedList.h"#include "commonInter.h"#include "plist.h"struct plist{ linkedList list;};plist newPlist (){ plist p = checkedMalloc (sizeof (*p)); p->list = newLinkedList (); return p;}void plistAdd (plist list, tag t, poly x){ tuple tp = newTuple (t, x); linkedListInsertHead (list->list, tp); return;}poly plistPeek (plist list, tag t){ linkedList temp = linkedListGetFirst (list->list); while (temp) { tuple tp = (tuple)temp->data; if (tagEquals (t, tupleFirst (tp))) { // printf ("they are equals\n"); return tupleSecond (tp); } temp = temp->next; } //error ("\ndata item not found in property list\n"); return NULL;}void plistDeleteAll (plist list, tag t){ linkedList prev = list->list; linkedList cur = linkedListGetFirst (prev); while (cur) { tuple tp = (tuple)cur->data; if (tagEquals (t, tupleFirst (tp))) { prev->next = cur->next; checkedFree (cur); cur = prev->next; } else { prev = cur; cur = cur->next; } } return;}void plistOutput (plist l){ linkedList temp = linkedListGetFirst (l->list); while (temp) { tuple tp = (tuple)temp->data; poly data = tupleSecond (tp); strOutput (getVft (data)->toString(data)); temp = temp->next; }}int plistEquals (plist l1, plist l2){ return l1==l2;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -