|
珞珈山水BBS →
电脑网络 →
程序人生 →
单文区文章阅读
|
| 单文区文章阅读 [返回] |
|---|
|
发信人: awded (没有追求了), 信区: Programm 标 题: Re: 求助:关于C数据结构单连表就地逆置 发信站: 珞珈山水BBS站 (Thu Apr 28 21:37:24 2005), 转信 3个问题: typedef struct/*定义顺序堆栈*/ {struct slnode Stack[maxnum]; int Top;}qstype; void converse(slnodetype *la) { slnodetype *p; qstype *q;/* 1、此时还未给该指针分配内存呢!谁知道此指针指到什么地方 去了??说不定会让系统出现莫名奇妙的错误哦*/ q->Top=0; if(q->Top>=maxnum-1) {printf("\n 堆栈已满\n");}/*2、如果堆栈已满,仍要继续下去吗?这样势必 会让程序当掉*/ p=la; while(p->Next!=NULL) { q->Stack[q->Top]=p->Next; q->Top++; p=p->Next; } p=la; while(q->Top>0) { p->Next=q->Stack[q->Top]; p=p->Next; q->Top--; } p->Next=NULL; /*3、*la 还是老样子,这样,la 将指向链表中最后一个元素(以前的第一个 元素)那么前N个元素将丢失,造成内存泄漏*/ } 逻辑没有看,应该没有什么逻辑问题吧。 【 在 zhaoxiang (叶绿素) 的大作中提到: 】 : 利用顺序堆栈实现单连表的就地逆置(链式堆栈已经成功的实现) : 程序设计部分如下 : typedef struct/*定义顺序堆栈*/ : ................... -- ※ 来源:·珞珈山水BBS站 bbs.whu.edu.cn·[FROM: 222.20.198.*] |
| [返回单文区目录] |
|
|