Status ListCreate_CL(LinkList &CL)
{
CL = (Linklist)malloc(sizeof(LNode));
LinkList rear = CL;
rear->next = NULL;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int num;
scanf("%d",&num);
LNode *t = (LNode*)malloc(sizeof(LNode));
t->data = num;
rear->next = t;
rear = t;
}
rear->next = CL;
return OK;
}
void ListDelete_CL(LinkList &CL,ElemType min,ElemType max)
{
LNode *p = CL;
LNode *q;
while(p->next !=CL)
{
q = p->next;
if(q->data>min && q->data < max)
{
q->next = p->next;
free(q);
}
else
p=p->next;
}
}
Status ListCreate_Sq(SqList &L)
{
L.elem = (ElemType *)mallocLIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem)
exit(OVERFLOW);
L.listsize = LIST_INIT_SIZE;
L.length = ;
int n= 0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&(L.elem[i]));
L.length++;
}
return OK;
}
void ListReverse_Sq(SqList &L)
{
for(int i = 0;i<L.length/2;i++)
{
ElemType tmp = L.elem[i];
L.elem[i] = L.elem[L.length-1-i];
L.elem[L.length-1-i] = tmp;
}
}*/
Status ListInsert_SortedSq(SqList &L, ElemType e)
{
if(L.length == L.listsize)
{
L.elem = (ElemType *)realloc(L.elem,(1+L.length)*sizeof(ElemType));
}
int j=L.length;
for(;j>0;j--)
{
if(e>L.elem[j-1])
break;
else
L.elem[j]=L.elem[j-1];
}
L.elem[j]=e;
L.length++;
return OK;
}
void ListReverse_L(LinkList &L)
{
LinkList p,q;
p = L->next;
L->next=NULL;
while(p)
{
q=p;
p = p->next;
q->next = L->next;
L->next = q;
}
}*/
void LevelorderTraversal( BinTree BT )
{
if(BT=NULL)
return;
BinTree CC[10000];
CC[0] = BT;
int lens=1;
while(1)
{
if(lens == 0)
return;
int temp=0;
BinTree TH[10000];
for(int i=0;i<lens;i++)
{
if(CC[i]!=NULL)
printf(" %c",CC[i]->data);
if(CC[i]->Left!=NULL)
TH[temp++] = CC[i]->Left;
if(CC[i]->Right!=NULL)
TH[temp++] = CC[i]->Right;
}
lens = temp;
for(int i=0;i<lens;i++)
CC[i]=TH[i];
}
}*/
void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) ){
Visit(V);
Visited[V]=true;
for(int i=0;i<Graph->Nv;i++){
if(Graph->G[V][i]==1 && Visited[i]!=true){
DFS(Graph,i, Visit);
}
}
}
void BFS(LGraph Graph, Vertex S, void(*Visit)(Vertex))
{
int p [MaxVertexNum+10],a;
PtrToAdjVNode q = NULL;
int f = 0, r = 0;
p[r++] = S;
Visited[S] = true;
while (f!=r)
{
a = p[f++];
Visit(a);
q = Graph->G[a].FirstEdge;
while (q)
{
if (!Visited[q->AdjV])
{
p[r++] = q->AdjV;
Visited[q->AdjV] = true;
}
q = q->Next;
}
}
}