⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ordlist.h

📁 一个实现演示界面的,实现两个集合的交并差C语言程序
💻 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 + -