📄 ordlist.h
字号:
#ifndef ORDLIST_H
#define ORDLIST_H
#include "Node.h"
typedef struct {
LinkType head ,tail;
int size;
} OrderedList;
bool InitList (OrderedList &L)
{ if (MakeNode (L.head,' '))
{L.tail=L.head; L.size=0;return true;}
else{L.head=NULL; return false;}}
void DestroyList (OrderedList &L)
{ LinkType p,q;
p=L.head;
while (p) {q=p;p=SuccNode(p);FreeNode (q);}
L.head=L.tail=NULL;
}
LinkType GetElemPos (OrderedList L,int pos)
{ LinkType p;
int k;
if (!L.head || pos<1 || pos>L.size)
return NULL;
else if (pos==L.size) return L.tail;
else {p=L.head->next;k=1;
while ( p && k<pos) {p=SuccNode(p); k++;}
return p;}}
bool LocateElem (OrderedList L, ElemType e, LinkType &p)
{ NodeType *pre=NULL;
if (L.head)
{ pre=L.head; p=pre->next;
while ( p && p->data <e)
{ pre=p; p=SuccNode(p);}
if(p && (p->data==e)) return true;
else {p=pre;return false;}
}
else return false;
}
void Append (OrderedList &L,LinkType s)
{ if (L.head && s)
{ if (L.tail!=L.head) L.tail->next=s;
else L.head->next=s;L.tail=s;L.size++;}}
void InsertAfter (OrderedList &L, LinkType q,LinkType s)
{if (L.head && q && s)
{s->next=q->next;q->next=s;
if (L.tail==q) L.tail=s;
L.size++;}}
void ListTraverse(LinkType p, void (*visit) (LinkType))
{while (p) {visit (p) ; p=SuccNode(p);}}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -