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

📄 sofl_01.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/io/SofList/sofl_01.cc// version: $Id: sofl_01.cc,v 1.4 2000/10/03 12:59:37 picone Exp $//// isip include files//#include "SofList.h"#include <Console.h>// method: debug//// arguments://  const unichar* message: (input) debugging message//// return: a boolean value indicating status//boolean SofList::debug(const unichar* message_a) const {  // dump general information  //  SysString output;  SysString value;  // display the current node  //  const_cast<SofList*>(this)->display(value, current_d);  output.debugStr(name(), message_a, L"current_d", value);  Console::put(output);  // display the whole tree  //  if (root_d != (SofNode*)NULL) {    value.clear();    output.debugStr(name(), message_a, L"root_d", value);    Console::put(output);    const_cast<SofList*>(this)->displayTree();  }  else {    value.assign(root_d);    output.debugStr(name(), message_a, L"root_d", value);    Console::put(output);  }  // debugging parameters  //  value.assign(debug_level_d);  output.debugStr(name(), message_a, L"debug_level_d", value);  Console::put(output);  // exit gracefully  //  return true;}// method: display//// arguments: none//// return: a boolean value indicating status//// this method dumps the object index//boolean SofList::display() {  // start from the root node  //  SysString output;  SofNode* node = root_d;    if (node == (SofNode*)NULL) {    output.assign(L"empty tree");    Console::put(output);    return true;  }  // traverse the tree iteratively using the stack  //  long i = 0;  while (1) {        while (node != (SofNode*)NULL) {      push(node);      node = node->left_d;    }        if (pop(node)) {      display(output, node);      Console::put(output);      i++;      node = node->right_d;    }    else {      break;    }  }  output.assign(i);  output.insert(L"----------------\ntotal of ", 0);  output.concat(L" nodes");  Console::put(output);  // exit gracefully  //  return false;}// method: display//// arguments://  SysString& output: (output) string of node//  SofNode* node: (input) node to be displayed//// return: a boolean value indicating status//// this method dumps the object index into a string//boolean SofList::display(SysString& output_a, SofNode* node_a) {  output_a.clear();    // check argument  //  if (node_a == (SofNode*)NULL) {    return false;  }  // display a message  //  SysString number;    // pull out the object's name, either in numeric or symbol form  //  if (table_d != (SofSymbolTable*)NULL) {    table_d->getSymbol(output_a, node_a->name_d);  }  else {    output_a.assign((long)node_a->name_d);    output_a.insert(L"#", 0);  }  // append the tag  //  output_a.concat(L".");  number.assign((long)node_a->tag_d);  output_a.concat(number);  // append the position  //  output_a.concat(L":\t(pos = ");  number.assign((long)node_a->pos_d);  output_a.concat(number);  // append the size  //  output_a.concat(L", size = ");  number.assign((long)node_a->size_d);  output_a.concat(number);  // finish off the string  //  output_a.concat(L")");    // exit gracefully  //  return true;}// method: displayTree//// arguments://  SofNode* node: (input) node to be displayed//  long level: (input) level within the tree//// return: a boolean value indicating status//// this method dumps the object index as a tree//boolean SofList::displayTree(SofNode* node_a, long level_a) {  // check the node  //  if (node_a == (SofNode*)NULL) {    Console::put(L"empty tree");    return true;  }    // display the current node  //  SysString output(SysString::MAX_LENGTH);  display(output, node_a);  // insert leading spaces for level  //  if (level_a > 0) {    unichar preface[level_a + 1];    for (long i = 0; i < level_a; i++) {      preface[i] = L' ';    }    preface[level_a] = (unichar)NULL;    output.insert(preface, 0);  }    Console::put(output);  // display left and right children trees  //  if (node_a->left_d != (SofNode*)NULL) {    displayTree(node_a->left_d, level_a + 1);  }  if (node_a->right_d != (SofNode*)NULL) {    displayTree(node_a->right_d, level_a + 1);  }    // exit gracefully  //  return false;}

⌨️ 快捷键说明

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