栈的实现和应用

栈的实现和应用

ID:35354146

大小:54.75 KB

页数:7页

时间:2019-03-23

栈的实现和应用_第1页
栈的实现和应用_第2页
栈的实现和应用_第3页
栈的实现和应用_第4页
栈的实现和应用_第5页
资源描述:

《栈的实现和应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1栈(基于顺序表)typedefintS_DataType;typedefstructunsignedmax;unsignedtop;S_DataType*ptr;}Stack;voidS_init(Stack*ps){ps->max=8;ps->top=0;ps->ptr=(S_DataType*)malloc(sizeof(S_DataType)*ps->max);}voidS_clear(Stack*ps){ps->max=ps->top=0;if(ps->ptr)free(ps->ptr);ps->p

2、tr=0;}〃测试是否空intS_isEmpty(Stacks){returns.top==0;}voidS_push(Stack*ps,S_DataTypevalue){unsignedi;if(ps->top==ps->max){S_DataType*new_ptr=(S_DataType*)malloc(sizeof(S_DataType):}:ps->max*2);for(i=0;itop;++i)new_ptr[i]=ps->ptr[i];ps->max*=2;free(ps->ptr);

3、ps->ptr=new_ptr;}ps->ptr[ps->top++]=value;intS_pop(Stack*ps){if(ps->top==0)return0;~ps->top;return1;}intS_getTop(Stacks,S_DataType*p_value){if(s.top==0)return0;*p_value=s.ptr[s.top-1J;return1;}2栈的实现(基于链表)typedefintS_DataType;typedefstructN{S_DataTypedata;st

4、ructN*next;}node;node*make_node(S_DataTypedata){node*np=(node*)malloc(sizeof(node));np->next=0;np->data=data;returnnp;}typedefstruct{node*top;[Stack;voidS_init(Stack*ps){ps->top=0;}voidS_clear(Stack*ps)while(ps->top)node*del=ps->top;ps->top=dek>next;free(de

5、l);}}〃测试是否空intS_isEmpty(Stacks){returns.top==0;}voidS_push(Stack*ps,S_DataTypevalue){node*np=make_node(value);np->next=ps->top;ps->top=np;}intS_pop(Stack*ps){node*del=ps->top;if(ps->top==0)return0;ps->top=del->next;free(del);return1;}intS_getTop(Stacks,S_Da

6、taType*p_value){if(s.top==0)return0;*p_value=s.top->data;return1;}3栈的应用:n皇后voidprint(int**arr,intn){inti,j;for(i=0;i

7、

8、k-i+j>=0&&a

9、rr[k][k-i+j]==l

10、

11、i+j-k

12、][j]=O;i二j=0;while(l){for(;j

13、

14、i==n)if(i==n)printf(u第%(1解:",4-4-count);print(arr,n);)・・i;if(i<0)break;S_getTop(s,&j);S_pop(&s);arr[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。