實驗三 串的模式匹配

2022-07-14 09:54:10 字數 2583 閱讀 4753

這個作業屬於哪個課程

這個作業的要求在**

/homework/11165

這個作業的目標

了解串的基本概念; 掌握串的模式匹配演算法的實現

一、 實驗目的

了解串的基本概念

掌握串的模式匹配演算法的實現

二、 實驗預習

說明以下概念

三、 實驗內容和要求

1、閱讀並執行下面程式,根據輸入寫出執行結果。

#include#include#define maxsize 100

typedef structsqstring;

int strcompare(sqstring *s1,sqstring *s2); /*串的比較*/

void show_strcompare();

void strsub(sqstring *s,int start,int sublen,sqstring *sub);

/*求子串*/

void show_substring();

int strcompare(sqstring *s1,sqstring *s2)

void show_strcompare()

void strsub(sqstring *s,int start,int sublen,sqstring *sub)

for(i=0;idata[i]=s->data[start+i-1];

sub->length=sublen;

}void show_substring()sqstring;

int index_bf(sqstring *s,sqstring *t,int start);

void getnext(sqstring *t,int next);

int index_kmp(sqstring *s,sqstring *t,int start,int next);

void show_index();

int index_bf(sqstring *s,sqstring *t,int start);

void getnext(sqstring *t,int next);

int index_kmp(sqstring *s,sqstring *t,int start,int next);

void show_index();

int index_bf(sqstring *s,sqstring *t,int start)

else

} if(t->data[j]=='\0') return start+1;

else return 0;

}void getnext(sqstring *t,int next)else

j=next[j];

}}int index_kmp(sqstring *s,sqstring *t,int start,int next)

else

k=next[k];

}sqstring *vec;

int p=0;

int q=0;

while(plength&&qlength)

else

q=next[q];

if(q==t->length)

} }void show_index(),i;

printf("\n***show index***\n");

printf("input string s:");

gets(s.data);

s.length=strlen(s.data);

printf("input string t:");

gets(t.data);

t.length=strlen(t.data);

printf("input start position:");

scanf("%d",&k);

printf("bf:\nthe result of bf is %d\n",index_bf(&s,&t,k));

getnext(&t,next);

printf("kmp:\n");

printf("next:");

for(i=0;i⦁ 執行程式

輸入:abcaabbabcabaacbacba

abcabaa

1執行結果:

四、 實驗小結

本實驗在原有的程式架構下,補充了bf演算法和kmp演算法的程式。根據題目要求,用c++執行程式,得到了較為合理的結果。本實驗的重點在於bf演算法和kmp演算法的學習與運用,筆者利用課本及網路資源,對bf演算法和kmp演算法進行了初步的學習,對其有了整體上的了解後,進行bf演算法和kmp演算法的程式設計,從而圓滿地完成了本實驗。

五、 評語

continue!

實驗三 串的模式匹配

這個作業屬於哪個課程 這個作業要求在 homework 11392 這個作業的目標 串的模式匹配 學號2018204153 一 實驗目的 1 了解串的基本概念 2 掌握串的模式匹配演算法的實現 二 實驗預習 說明以下概念 1 模式匹配 模式匹配是資料結構中字串的一種基本運算,給定乙個子串,要求在某個...

串的模式匹配

最近在學 vc include stdafx.h include include define max size 1000 串的模式匹配 功能 找出str2字串在str1字串中第一次出現的位置 不包括串結束符 返回 該位置的序號 環境 visual c 2008 注意 1.此為樸素的模式匹配演算法,...

串的模式匹配

以前每次看到字串匹配,一律跳過,今天耐著性子研究了下,依舊是半混沌狀態,先整理放在這,以備後用。這篇文章幫助很大,樸素匹配演算法 kmp演算法,收藏先。1.樸素匹配演算法 int patternmatch common const char pstring,const char ppattern i...