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

📄 orderset.h

📁 一个实现演示界面的,实现两个集合的交并差C语言程序
💻 H
字号:
#ifndef ORDERSET_H
#define ORDERSET_H

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include "Ordlist.h"

typedef OrderedList OrderedSet;

void CreateSet(OrderedSet &T,char *s)
{unsigned int i;
 LinkType p,q;
 if (InitList(T))
	 for (i=0;i<strlen(s);i++)
	 {
      if (islower(s[i]) && !LocateElem (T,s[i],p))
      if (MakeNode(q,s[i])) InsertAfter(T,p,q);
	 }
}

void DestroySet (OrderedSet &T)
{ DestroyList (T);}
 
void Union ( OrderedSet &T, OrderedSet S1,OrderedSet S2)
{LinkType p1,p2;
 char c1,c2;
if (InitList (T)) 
{p1=GetElemPos(S1,1); p2=GetElemPos(S2,1);
  while (p1 && p2)
 {c1=Elem (p1) ; c2=Elem(p2);
  if (c1<=c2) 
  {Append (T,Copy(p1)); 
   p1=SuccNode(p1); 
   if (c1==c2) p2=SuccNode(p2);
  }
  else {Append (T,Copy(p2)); p2=SuccNode(p2);}
  }
  while (p1) {Append (T,Copy(p1)); p1=SuccNode(p1);}
  while (p2) {Append (T,Copy(p2)); p2=SuccNode(p2);}
}
}
 
void Intersection( OrderedSet &T ,OrderedSet S1,OrderedSet S2)
{ LinkType p1,p2;
  char c1,c2;
  if (!InitList (T)) T.head =NULL;
  else {p1=GetElemPos(S1,1); p2=GetElemPos(S2,1);
        while (p1 && p2) 
		{c1=Elem (p1); c2=Elem (p2);
         if(c1<c2) p1=SuccNode(p1);
         else {if (c1>c2) p2=SuccNode (p2);
               else {Append (T,Copy(p1));
                     p1=SuccNode(p1);p2=SuccNode(p2);
}}}}}

void Difference (OrderedSet &T , OrderedSet S1, OrderedSet S2)
{ LinkType p1,p2;
  char c1,c2;
	if (!InitList (T)) T.head=NULL;
   else {p1=GetElemPos(S1,1);p2=GetElemPos(S2,1);
         while (p1&&p2)
		 {c1=Elem(p1);c2=Elem(p2);
          if (c1<c2)
		  {Append (T,Copy(p1));p1=SuccNode(p1);}
          else {if (c1>c2) p2=SuccNode(p2);
                 else {p1=SuccNode(p1);p2=SuccNode(p2);}}}
while (p1) {Append(T,Copy(p1));p1=SuccNode(p1);}}}

void WriteSetElem (LinkType p)
{printf (","); printf("%c",Elem(p));}

void PrintSet(OrderedSet T)
{LinkType p;
	p=GetElemPos(T,1);
printf("[");
if (p) {printf("%c",Elem (p));p=SuccNode(p);}
ListTraverse(p,WriteSetElem);
printf("]");}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -