實驗1線性表的應用 選做 一元多項式相加

2022-10-10 12:51:05 字數 1476 閱讀 9779

1.實驗題目

鍊錶的應用

2.實驗內容

一元多項式相加

3.實驗目的

掌握鍊錶的概念與原理,運用其原理設計並完成實驗題目中的內容。

4.實驗要求

實驗課前認真做好相關內容的預習及偽碼的編寫(寫在紙上及盤中均可),在實驗課中除錯並執行,並驗證其正確性。

5.概要設計原理

6.詳細程式清單及注釋說明

#include <>

#include <>

#include <>

#include <>

#define null 0

#define ok 1

#define overflow -2

#define stack_init_size 100

#define stackincrement 20

/* 定義字元型別棧 */

typedef struct

sqstack;

全域性變數

sqstack optr,opnd;// 定義運算子棧和運算元棧

char expr[255]; /* 存放表示式串 */

char *ptr=expr;

int initstack(sqstack *s) //構造運算子棧

char in(char ch) //判斷字元是否是運算子,運算子即返回1

int push(sqstack *s,char ch) //運算子棧插入ch為新的棧頂元素

char pop(sqstack *s) //刪除運算子棧s的棧頂元素,用p返回其值

char gettop(sqstack s)//用p返回運算子棧s的棧頂元素

/* 判斷運算子優先權,返回優先權高的 */

char precede(char c1,char c2)

switch(c2)

return (array[7*i+j]); /* 返回運算子 */

} /*操作函式 */

int operate(int a,char op,int b)

return 0;

}int num(int n)//返回運算元的長度

int evaluateexpression()//主要操作函式

else

switch(precede(gettop(optr),c))

}return gettop(opnd);

}int main( )

while(!*expr);

initstack(&optr); // 初始化運算子棧

push(&optr,'#'); //將#壓入運算子棧

initstack(&opnd); //初始化運算元棧

printf("表示式的運算結果為:%d\n",evaluateexpression());

getchar();

return 0;

}7.執行與測試及結果

8.實驗中所遇的問題及解決方法

實驗一線性表應用

實驗目的 本次實驗的主要目的在於熟悉線性表的基本運算在兩種儲存結構上的實現,其中以熟悉鍊錶的各種操作為側重點。通過本次實習還可幫助讀者複習高階語言的使用方法。問題描述 試設計乙個非遞迴演算法在o n 時間內,將乙個含有n個元素的單鏈表實現就地逆置,要求其輔助空間為常量。基本要求 利用單鏈表儲存結構模...

實驗報告 一元稀疏多項式的加法

程式2 一元稀疏多項式加法運算 問題描述 設計乙個求解一元稀疏多項式加法運算的程式。基本要求 1 輸入並建立多項式。2 輸出多項式,輸出形式為整數序列 n,c1,e1,c2,e2,cn,en,其中n是多項式的項數,ci和ei分別是第i項的係數和指數,序列按指數降序排列。3 多項式a和b相加,建立多項...

一元一次方程的應用 1

茶陵思源實驗學校 數學學科備課教案 日期 年 月 日 茶陵思源實驗學校 數學學科備課教案 日期 年 月 日 茶陵思源實驗學校 數學學科備課教案 日期 年 月 日 茶陵思源實驗學校 數學學科備課教案 日期 年 月 日 茶陵思源實驗學校 數學學科備課教案 日期 年 月 日 茶陵思源實驗學校 數學學科備課...