| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1880 人关注过本帖
标题:求栈的删除与插入程序
只看楼主 加入收藏
迟爱
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-17
收藏
 问题点数:0 回复次数:6 
求栈的删除与插入程序
我是一个刚学数据结构的学生。基础比较差,真诚的希望得到师兄师姐们的帮助。求栈的删除和插入程序。要简明旁边有注明。非常谢谢。
搜索更多相关主题的帖子: 请求 
2008-11-17 17:00
jdshaoheyi
Rank: 1
等 级:新手上路
帖 子:133
专家分:5
注 册:2008-11-6
收藏
得分:0 
是链栈还是顺序栈啊?得先告诉我吧!
2008-11-17 22:53
迟爱
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-17
收藏
得分:0 
链栈和顺序栈
如果可以的话,两种都能帮帮我吗,实在感谢啊。但是顺序栈为先,如果时间有限就写 顺序栈吧,小弟我谢谢了。自己基础实在好差。
2008-11-17 23:17
Hakuna_Matata
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-10-25
收藏
得分:0 
//插入元素e为新的栈顶元素
//已修改
Status Push(SqStack &S, SElemType e)
{
    if(S.top - S.base >= S.stacksize)//若栈满 S.stacksize为栈的长度
    {
        S.base = (SElemType*)realloc(S.base,
            (S.stacksize + STACKINCREMENT)*sizeof(SElemType));
//追开空间 STACKINCREMENT是增开空间的长度
        if(!S.base)
            return OVERFLOW;
        S.top = S.base + S.stacksize;//栈顶指针指向新的栈顶元素
        S.stacksize +=  STACKINCREMENT;
        }
    *S.top++=e;//栈顶放数据后再增1,栈顶不放元素
    return OK;
}


//删除S的栈顶元素,并用e返回其值
Status Pop(SqStack &S, SElemType &e)
{
    if(S.top == S.base)
        return ERROR;//判断栈是否为空
    e = * --S.top;//这里定义的栈的栈顶不放元素,故栈顶指针减1
    return OK;
}
2008-11-18 09:32
geninsf009
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:613
专家分:95
注 册:2008-8-16
收藏
得分:0 
自己看书,自己编写,这个不难的.
2008-11-18 11:05
q20071145028
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-10-29
收藏
得分:0 
顺序栈
void  Push(const DataType item)   //插入函数
{
   if(top==MaxSize)
{
    cout<<"栈已满!"<<endl;
exit(0);
}
data[top]=item;
}
top++;
}
void Pop(void)  //删除函数
{
if (top==0)
{
cout<<"栈已空!"<<endl;
exit(0);
}
top--;
return data[top];
}
链式
void Push(const T& item)    //插入函数
{  
  StackNode <T> *newNode=new StackNode<T> (item,head->next);
head->next=newNode;
size++;
}
void Pop(void)
{
 if(size=0)
{
    cout<<"栈已空!"<<endl;
exit(0);
}
StackNode<T> *p=head->next;
T data=p->data;
head->next=head->next->next;
delete p;
size--;
return data;
}
2008-11-18 21:38
willton
Rank: 1
来 自:西安
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-18
收藏
得分:0 
我写写
顺序表的
int InsertList(SeqList*L,int i,datatype x)
{int j;
   if(L->last==MAXSIZE-1)
     {printf("表满");
      return(-1);
     }
   if(i<1||i>L->last+2)
    {printf("位置错误");
     return(0);
    }
   for(j=L->last;j>=i-1;j--)
     L->elem[j+1]=l->elem[j];
      L->elem[i-1]=x;
      L->last++;
     return(1);
}
2008-11-18 23:18
快速回复:求栈的删除与插入程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027327 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved