1、 此表为:);OutputList(l);请输入要查找元素的值nscanf(%d,&i);a=FindList(l,i);要查找元素的位置第%d个n,a+1);请输入要删除元素的值na=DeleteList1(&l,i);要删除元素位置第%d个n请输入要删除元素的位置nDeleteList2(&int InitList(List *L,int ms) L-list=(int*)malloc(ms*sizeof(int);if(!list)exit(1);size=0;MAXSIZE=ms;int InsertList( List *L,int item,int rc) int i;if(rcs
2、ize+1)return -1;if(L-size=L-MAXSIZE) return -1;listrc=item;for(i=L-size;irc;-i) L-listi=L-listi-1;+L-int DeleteList1(List *L,int item) int i,j;if(item=L-listi) break;if(isize) for(j=i;jlistj+1;-L-return i;else return -1;int DeleteList2(List *L,int rc) int i,j,a;for(j=rc-1;size-;int FindList(List L,i
3、nt item) int i=0;while(i=pS.num)栈溢出else*pS.pTop+=k;void pop(STACK &if(pS.pBottom=pS.pTop)为空栈pS.pTop-;bool isempty(STACK &s)if(s.pBottom=s.pTop)return true;return false;bool Check(STACK &char ch100;请输入检测的括号串:%s,ch);for(int i=0;strlen(ch);i+)switch(chi)case :push(s,if(*(s.pTop-1)=)pop(s);()if(isempty(
4、s)int main(void)Stack s;InitStack(s);if(Check(s)匹配成功n匹配失败nreturn 0;2.判断回文串运算栈的特点是先进后出,而回文串是一个正读和反读都一样的字符串,所以可以利用栈的特点将串入栈,在出栈,最后将出栈的结果和用户输入的串进行比较即可。char * top;char * base;int stacksize;s.top = (char *)malloc(100*sizeof(char);if(s.top=NULL)s.base = s.top;*s.top = 0;s.stacksize = 100;/分配100个 s,char k)i
5、f(s.top-s.base)=s.stacksize)*s.top+=k; s,char &k)if(s.base=s.top)k=*-s.top;bool check(STACK &s) char str100;char data100;请输入检测的字符串:,str);strlen(str);+i)push(s,stri);for(int j=0;+j)pop(s,dataj);for(int n=0;nm=A-n;B-n=A-m;len=A-len;if(B-len0)j=1;for(k=1;kk+)for(i=1;if(A-datai.col=k)dataj.row=A-datai.c
6、ol;dataj.col=A-datai.row;dataj.e=A-datai.e;j+;int main()int x,y,i,j;int k=1,p=1;TSMatrix B,C;int A100100;请输入要转置行列式的行和列的值:%d%dx,&y);请输入此稀疏矩阵的元素:=x;for(j=1;=y;j+)Aij);if(Aij!=0)B.datak.row=i;B.datak.col=j;B.datak.e=Aij;k+;B.m=x;B.n=y;B.len=k-1;TransposeTSMatrix(&B,&C);转置后的矩阵为:=C.m;i+)=C.n;j+)if(C.data
7、p.row=i)&(C.datap.col=j)%d ,C.datap.e);p+;else printf(0 实验四非递归算法实现二叉树的前序和中序遍历前序遍历:1.访问根节点2.前序遍历左子树3.前序遍历右子树中序遍历:1.中序遍历左子树2.访问根节点3.中序遍历右子树#include = S.stacksize) if (!(S.base = (BiNode *)realloc(S.base, sizeof(BiTree) * (STACKINCREMENT + S.stacksize) S.stacksize += STACKINCREMENT; *S.top+ = e ;void P
8、op(SqStack &S, BiNode *e) if (S.base = S.top) *e = *-S.top;int GetTop(SqStack S, BiNode *e) if (S.base = S.top) return 0;*e = *(S.top - 1); return 1;int StackEmpty(SqStack S) if (S.top = S.base) else void CreateBiTree(BiTree &T) char ch; scanf(%c, &ch); if(ch = T = NULL; else if(!(T = (BiNode *)mall
9、oc(sizeof(BiNode) T-data = ch; CreateBiTree(T-lchild);rchild);void PreorderTraverse_1(BiTree T) BiTree p; SqStack S; InitStack(S); Push(S, T); while(!StackEmpty(S) while(GetTop(S, &p) & p) printf(%c , p-data); Push(S, p- Pop(S, &p); Push(S,p-void InOrderTraverse_1(BiTree T) Push(S,T); while (! while
10、 (GetTop(S,&Push(S,p- Pop(S,& printf( BiTree T;请按先序次序输入二叉树中结点的值(字符),空格字符表示空树: CreateBiTree(T);先序遍历方法结果为: PreorderTraverse_1(T);nn中序遍历方法结果为: InOrderTraverse_1(T);实验体会通过这次写实验报告,我深切的理解了这门课的本质。刚开始学这门课时,当时还不清楚这门课程的目的,现在,我真正的理解了。在这次设计的过程中,我还遇到了,很多的问题。在执行时出现了问题。后来问同学,指出我的错误,不过获益不少。我又重新整理思路,虽然走了很多弯路,但是让我认识到,一定要创新,大胆,不能按照旧的思路去干新的事情。这次的实验报告,让我受益匪浅,不仅有知识方面的,还有生活和精神上的。总之,我会继续我的兴趣编程,相信在编程的过程中,能不断的提高自己。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2