コード例 #1
0
GList1 GetTail(GList1 L)
{
	GList1 t;

	InitGList(t);
	if (L->hp)
		CopyGList(t->hp, L->hp->tp);
	return t;
}
コード例 #2
0
ファイル: main.cpp プロジェクト: loveyu/DataStructure
int main(void){
	GList L;
	InitGList(L);
	SString S;
	InitString(S,"(123),(12ddfa)");
	CreateGList(L,S);

	printf("\nResult End!\n");
	system("pause");
	return 0;
}
コード例 #3
0
 void main()
 {
   char p[80];
   GList l,m;
   HString t; /* 与main5-51.c不同 */
   InitString(&t); /* 增加此句 */
   InitGList(&l);
   InitGList(&m);
   printf("空广义表l的深度=%d l是否空?%d(1:是 0:否)\n",GListDepth(l),GListEmpty(l));
   printf("请输入广义表l(书写形式:空表:(),单原子:a,其它:(a,(b),b)):\n");
   gets(p);
   StrAssign(&t,p);
   CreateGList(&l,t);
   printf("广义表l的长度=%d\n",GListLength(l));
   printf("广义表l的深度=%d l是否空?%d(1:是 0:否)\n",GListDepth(l),GListEmpty(l));
   printf("遍历广义表l:\n");
   Traverse_GL(l,visit);
   printf("\n复制广义表m=l\n");
   CopyGList(&m,l);
   printf("广义表m的长度=%d\n",GListLength(m));
   printf("广义表m的深度=%d\n",GListDepth(m));
   printf("遍历广义表m:\n");
   Traverse_GL(m,visit);
   DestroyGList(&m);
   m=GetHead(l);
   printf("\nm是l的表头,遍历广义表m:\n");
   Traverse_GL(m,visit);
   DestroyGList(&m);
   m=GetTail(l);
   printf("\nm是l的表尾,遍历广义表m:\n");
   Traverse_GL(m,visit);
   InsertFirst_GL(&m,l);
   printf("\n插入l为m的表头,遍历广义表m:\n");
   Traverse_GL(m,visit);
   printf("\n删除m的表头,遍历广义表m:\n");
   DestroyGList(&l);
   DeleteFirst_GL(&m,&l);
   Traverse_GL(m,visit);
   printf("\n");
   DestroyGList(&m);
 }
コード例 #4
0
ファイル: Main5-5.c プロジェクト: jiayuehua/datastructure_gao
 void main()
 {
   char p[80];
   SString t;
   GList l,m;
   InitGList(&l);
   InitGList(&m);
   printf("空广义表l的深度=%d l是否空?%d(1:是 0:否)\n",GListDepth(l),GListEmpty(l));
   printf("请输入广义表l(书写形式:空表:(),单原子:(a),其它:(a,(b),c)):\n");
   gets(p);
   StrAssign(t,p);
   CreateGList(&l,t);
   printf("广义表l的长度=%d\n",GListLength(l));
   printf("广义表l的深度=%d l是否空?%d(1:是 0:否)\n",GListDepth(l),GListEmpty(l));
   printf("遍历广义表l:\n");
   Traverse_GL(l,visit);
   printf("\n复制广义表m=l\n");
   CopyGList(&m,l);
   printf("广义表m的长度=%d\n",GListLength(m));
   printf("广义表m的深度=%d\n",GListDepth(m));
   printf("遍历广义表m:\n");
   Traverse_GL(m,visit);
   DestroyGList(&m);
   m=GetHead(l);
   printf("\nm是l的表头元素,遍历m:\n");
   Traverse_GL(m,visit);
   DestroyGList(&m);
   m=GetTail(l);
   printf("\nm是由l的表尾形成的广义表,遍历广义表m:\n");
   Traverse_GL(m,visit);
   InsertFirst_GL(&m,l);
   printf("\n插入广义表l为m的表头,遍历广义表m:\n");
   Traverse_GL(m,visit);
   printf("\n删除m的表头,遍历广义表m:\n");
   DestroyGList(&l);
   DeleteFirst_GL(&m,&l);
   Traverse_GL(m,visit);
   printf("\n");
   DestroyGList(&m);
 }
コード例 #5
0
void CreateGList(GList1 &L, SString S)
{
	SString emp, sub, hsub;
	GList1 p;

	StrAssign(emp, "()");
	if (!StrCompare(S, emp)) {
		InitGList(L);
	} else { SubString(sub, S, 2, StrLength(S) - 2);

		 sever(sub, hsub);
		 Create(L->hp, hsub);
		 p = L->hp;
		 while (!StrEmpty(sub)) {
			 sever(sub, hsub);
			 Create(p->tp, hsub);
			 p = p->tp;
		 }
		 p->tp = NULL; }
}