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

📄 jay6.c

📁 有关数据结构的一些例子。用C语言编写的。非常有价值的程序。对初学者有指导借鉴意义。
💻 C
字号:
#define NULL 0
#include "stdio.h"
#include "stdlib.h"

typedef int datatype;
typedef struct linknode
{ datatype data;
  struct linknode *next;
} linkstring;
linkstring *S,*T,*head3;

linkstring *CREAT1()
{ char ch;
  linkstring *head,*s,*r;
  head=NULL;
  r=NULL;
  printf("\n链串1:\n");
  scanf("%c",&ch);
  while(ch!='$')
  { s=malloc(sizeof(linkstring));
    s->data=ch;
	if(head==NULL)
	  head=s;
	else
	  r->next=s;
	r=s;
	printf("%c\t",s->data);
	scanf("%c",&ch);
  }
 if(r!=NULL)
   r->next=NULL;
 return (head);
}

linkstring *CREAT2()
{ char x;
  linkstring *head,*s,*r;
  head=NULL;
  r=NULL;
  printf("\n链串2:\n");
  scanf("%c",&x);
  while(x!='$')
  { s=malloc(sizeof(linkstring));
    s->data=x;
	if(head==NULL)
	  head=s;
	else
	  r->next=s;
	r=s;
	printf("%c\t",s->data);
	scanf("%c",&x);
  }
 if(r!=NULL)
   r->next=NULL;
 return (head);
}

linkstring *INDEXL(M,N)
linkstring *M,*N;
{ linkstring *first,*p,*q;
  first=M;
  p=first;
  q=N;
  while(p!=NULL && q!=NULL)
   if(p->data==q->data)
    { p=p->next;
      q=q->next;
    }
   else
    { first=first->next;
      p=first;
      q=N;
    }
   if(q==NULL)
      return(first);
   else
	  return(NULL);
}

main()
{ char ch;
  do
  { S=CREAT1();   
    getchar();
    T=CREAT2();
    printf("\n是否进行模式匹配?\n");
    getchar();  ch=getchar();
    if(ch=='y')
	{ head3=INDEXL(S,T);
	   if(head3!=NULL)
	   { printf("匹配成功,并返回子串第一个元素!\n");
		 printf("%c\n",head3->data);
	   }
	   else
	    printf("匹配失败!\n");
	}
    else
      exit(0);
	printf("是否继续?\n");
	getchar();  ch=getchar();
  } while(ch=='y');
}

⌨️ 快捷键说明

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