#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<Windows.h>
static int index = 0;
#define MAX_SIZE 24
typedef char SeqTree[MAX_SIZE];
void InitSeqTree(SeqTree tree)
{
int i = 0;
for (i; i < MAX_SIZE; i++)
{
tree[i] = '\0';
}
}
void CreateSeqTree(SeqTree tree, int index)
{
char ch;
ch = getchar();
fflush(stdin);
if (ch == '^')
{
tree[index] = '\0';
return;
}
tree[index] = ch;
printf("左孩子:");
CreateSeqTree(tree, 2 * index + 1);
printf("右孩子:");
CreateSeqTree(tree, 2 * (index + 1));
}
void Test(SeqTree tree)
{
InitSeqTree(tree);
printf("請輸入根結點:");
CreateSeqTree(tree, 0);
int i;
for ( i = 0; i < 15; i++)
{
printf("[%d - %d] ", i, tree[i]);
}
}
int GetLength(SeqTree tree)
{
int len= 0;
int i =0;
for(i; i < MAX_SIZE; i++)
{
if(tree[i] == '\0')
{
continue;
}
len++;
}
return len;
}
int Get(SeqTree tree)
{
int len= 0;
for(len = MAX_SIZE; len >= 0; len --)
{
if(tree[len-1] != '\0')
{
break;
}
}
return len;
}
int main()
{
SeqTree tree;
Test(tree);
printf("%d->\n ",GetLength(tree));
printf("%d->",Get(tree));
system("pause");
}
uj5u.com熱心網友回復:
1: get函式中 if(tree[len-1] != '\0'), len=0時,越界了2:SeqTree tree如果是稀疏的,即兩邊元素不為0,而中間元素為0,則兩個函式回傳值不一樣
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/115177.html
標籤:數據結構與算法
上一篇:關于線性表抽象資料結構的指標問題
