zoukankan      html  css  js  c++  java
  • 数据结构:串

    一、串的基本概念

    1.串的定义

    • s=“a1a2…an”

    2.串的基本操作

    二、串的顺序存储结构

    1.串的非紧缩存储

    一个存储单元中只存储一个字符,和顺序表中一个元素占用一个存储单元类似。具体形式见图1,设串S=“How do you do”。

    2.串的紧缩存储

    根据各机器字的长度,尽可能将多个字符存放在一个字中。假设一个字可存储4个字符,则紧缩存储具体形式.

    3.串的字节存储

    三、串的链式存储结构

     1 ///Name:String
     2 ///Author:JA
     3 ///Date:2015-3-9
     4 
     5 
     6 
     7 ///串的块链存储表示
     8 #define CHUNKSIZE 80      //块大小
     9 typedef struct Chunk{
    10     char ch[CHUNKSIZE];
    11     struct Chunk *next;
    12 }Chunk;
    13 typedef struct{
    14     Chunk *head, *tail;    //串的头和尾指针
    15     int curlen;           //串的当前长度
    16 }LString;
    17 
    18 ///模式匹配
    19 int Index(SString S,SString T, SString pos){
    20     i = pos; j = 1;
    21     while (i <= S[0] && J <= t[0]){
    22         if (S[i] == T[j]){ ++i, ++j; }     //继续比较后续字符
    23         else{ i = i - j + 2;j=1 }        //指针后退重新开始匹配
    24     }
    25     if (j > T[0]) return i - T[0];
    26     else return 0;
    27 }//Index
    View Code

    四、串的应用:模式匹配

    1.传统的模式匹配

    2.KMP算法


    3/9/2015 2:48:24 PM

  • 相关阅读:
    加密
    读取excel
    poj 1852 Ants
    关于运行时间
    poj 1001 Exponentiation
    Poj 3669 Meteor Shower
    一道简单题目的优化过程——抽签问题
    高精度四则运算
    Usaco_Contest_2013_Open_Bovine Problem 1. Bovine Ballet
    h5 音频 视频全屏设置
  • 原文地址:https://www.cnblogs.com/joeaaron007/p/4323592.html
Copyright © 2011-2022 走看看