Algorithmic Solutions > LEDA > LEDA Guide > Simple,Basic, and Advanced Data Types > Advanced Data Types > Sorted Sequences Example

Sorted Sequences Example

The following program reads a sequence of strings terminated by "stop" and builds a sorted sequence sortseq<string,int>. int is a dummy type which is not used in the program. Then a pair (s1,s2) of strings is read and all input strings between s1 and s2 in S are printed.
#include <LEDA/core/sortseq.h>
#include <LEDA/core/string.h>

using namespace leda;

int main()
{
  sortseq<string,int> S;
    //objects of type int (dummy), keys of type string
  string s1,s2;
		
  std::cout << "Input a sequence of strings terminated by 'stop'.\n";
 while (std::cin >> s1 && s1 != "stop") S.insert(s1,0);
		
  while (true) {
    std::cout << "\nInput a pair of strings.\n\n";
    std::cin >> s1 >> s2;
    std::cout << "All strings s with " 
         << s1 << "<= s <= " << s2 << ":\n";
	
    if (s2<s1) continue;
	
    seq_item last=S.locate_pred(s2);
    seq_item first=S.locate(s1);
    if (!first||!last||first==S.succ(last)) continue;
			
    seq_item it=first;
    while (true) {
      std::cout << "\n" << S.key(it);
      if (it==last) break;
      it=S.succ(it);
    }
  }

  return 0;
}

See also:

Other data types with key of linearly ordered type:

Dictionaries

Dictionary Arrays.

Data type with key of type pointer, item, or int: Maps

Data type with key of hashed type: Hashing Arrays

Two-Dimensional Dictionaries

Strings


Manual Entries:

Manual Page Sorted Sequences

User Defined Parameter Types

LEDA Item Concept

Linear Orders

Hashed Types




Please send any suggestions, comments or questions to leda@algorithmic-solutions.com
© Copyright 2001-2003, Algorithmic Solutions Software GmbH