資料結構 嚴蔚敏版)習題集第三章課後標新號習題答案

2021-08-19 23:04:53 字數 4070 閱讀 8973

#include

#include

using namespace std;

/****預定義****/

#define stack_init_size 100

#define stackincrement 10

#define list_init_size 100

#define listincrement 10

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef char selemtype;

typedef int  elemtype;

typedef int status;

typedef struct node* position;

typedef struct node* list;

typedef struct node* queueptr;

typedef struct node;//鍊錶結構

typedef struct listqueue;//佇列結構

typedef struct sqstack;//堆的結構體

typedef struct

sqlist;//順序表的結構體

/*******構建乙個初始化的順序表********/

status initsqlist(sqlist &l)

/*******展示線性表的內容**********/

void show_sqlist(const sqlist &l)

cout << endl;

}/*******構建乙個初始化的棧*********/

status initstack(sqstack &s)

/********將e元素壓入棧內********/

status push(sqstack&s, const selemtype e)

*s.top++ = e; 

return ok;

}/*********將棧頂刪除並返回元素值********/

status pop(sqstack &s, selemtype &e)

/**********展示棧的內容************/

status show_s(const sqstack &s)

while (p != s.base);

cout << endl;

return ok;

}/**********3.17********/

status distinguish(sqstack &s)//判斷以@為結束符的字串行是否為逆序列

while (*(symbol-1)!= '&');

num1 = num1 - 1;

symbol--;

do while (*symbol == e);

if(s.top==s.base&&num2==num1)

else

}/************3.19*************/

void init_l(sqlist &l)

+d+[b+c]+e]+2+[1+3]+2+[3+4]";

int num = strlen(word);

for (int i = 0; i < num; i++)

}status judge_bracket(sqstack &s, sqlist &l)//判別表示式中所含括號是否正確配對出現

'|| l.elem[i] == '['||l.elem[i] == ']')

else }}

}if (s.top == s.base)

else

}/***************3.21****************/

int symbol_priority(char e)//符號優先順序判斷

return prioirity;

}void infix_turn_postfix(const char *word,sqstack &s)//將表示式轉化為字尾表示式

else 

else

else

} //不是結束括號與之前情形一樣

else

else

else

}else }}

}}}word++;

num--;

} while ( num!=0);

while (s.base != s.top)

}/*******3.28********/

/*******構建乙個初始化的迴圈鍊錶佇列********/

status initqueue(listqueue &q)

/*******入佇列********/

status enqueue(listqueue &q,selemtype e)

/*******出佇列*******/

status dequeue(listqueue &q, selemtype &e)

e = l->date;

free(l);

prior->next = q.rear;

return ok;

}/****展示佇列****/

void show_queue(listqueue &q)

}/****3.31****/

void judge_palindrome(sqstack &s,listqueue &q)//判斷輸入的字元是否為回文序列,以'@'結尾

if (word != '@')

} while (word != '@');

for (int i = 0; i

else

}if (snum == num)

else

}/****3.32****/

void init_fibonacci_sequence(listqueue &q, int max, int k)//建立裴波那契數列的迴圈佇列,前k項滿足fn<=max,fn+1>max;

cout << num << endl;

int *f = (int*)malloc(num * sizeof(int));

f[0] = 1; f[1] = 1;

for (int i = 0; i < num-2; i++)

for (int i = 0; i < k; i++)

}void main()

push(s,*word);

if(*word=='@')

word++;

} while (*word != '@');

show_s(s);

if (distinguish(s)==1)

else */

/****3.18****/

/*sqlist l; initsqlist(l); init_l(l); show_sqlist(l);

sqstack s; initstack(s);  show_s(s);

if (judge_bracket(s, l)) cout << "right!" << endl;

else */

/****3.21****/

/*const char *word = "(a+b)*(c/(d-e)+f)+a*b*c"; //"a+b*c+(d*e+f)*g"; 

sqstack s;initstack(s);

infix_turn_postfix(word, s);*/

/****3.31****/

/*listqueue q; initqueue(q);

sqstack s; initstack(s);

judge_palindrome(s,q);*/

/****3.32****/

listqueue q; initqueue(q);

init_fibonacci_sequence(q,55,5);

show_queue(q);

system("pause");

}

SCU C 習題集 第三章部分

建立乙個物件陣列,內放5個學生的資料 學號 成績 請輸出第1 3 5個學生的資料。include include using namespace std const int count 5 class student void student set value void func student ...

嚴蔚敏版 資料結構 第一章

首先,補充一下看書過程中遺漏的知識點 抽象資料型別的定義由乙個值域和定義在該值域上的一組操作組成。若按照其值的不同特性,可細分為下列3種型別 資料結構的形式定義為 資料結構是乙個二元組 data structure d,s 其中,d是資料元素的有限集,s是d上關係的有限集。抽象資料型別可以用三元組表...

資料結構 嚴蔚敏版第二章筆記

準備考研了,我們學校使用的教材不是這一本,大概整理一下。共勉 線性結構的特點 在資料元素的非空有限集合中 存在唯一的乙個被稱為 第乙個 的資料元素 存在唯一的乙個被稱為 最後乙個 的資料元素 除了第乙個之外,集合中的每個資料元均只有乙個前驅 除了最後乙個之外,集合中的每乙個元素均只有乙個後繼 2.1...