"数据结构作业1:栈的基本操作及十进制转八进制实现"
版权申诉
40 浏览量
更新于2024-04-03
1
收藏 142KB DOC 举报
)
{
int n;
scanf("%d", &n);
while(n)
{
Push(S, n%8);
n = n/8;
}
while(!StackEmpty(S))
{
Pop(S, &e);
printf("%d", e);
}
}
2、用单链表结构实现一个队列,包含了队列的基本操作函数void EnQueue(LinkQueue *Q,int e); //入队操作 void DeQueue(LinkQueue *Q,int *e); //出队操作 请将函数EnQueue和DeQueue补充完整,使其能够正常实现队列的入队和出队操作。
void EnQueue(LinkQueue *Q, int e)
{
QueuePtr p;
p = (QueuePtr)malloc(sizeof(QNode));
if(!p) //内存分配失败
exit(0);
p->data = e;
p->next = NULL;
Q->rear->next = p;
Q->rear = p;
}
void DeQueue(LinkQueue *Q, int *e)
{
QueuePtr p;
if(Q->front == Q->rear) //队列为空
{
return;
}
p = Q->front->next;
*e = p->data;
Q->front->next = p->next;
if(Q->rear == p) //删除最后一个元素
{
Q->rear = Q->front;
}
free(p);
}
3、给定一个字符串,使用栈来判断该字符串是否是对称的,即回文字符串。请根据下面的伪代码实现相应的函数isPalindrome。
bool isPalindrome(string s) {
stack<char> st;
int n = s.size();
for(int i=0; i<n/2; i++)
{
st.push(s[i]);
}
int j = (n+1)/2;
while(j<n)
{
if(s[j] != st.top())
{
return false;
}
st.pop();
j++;
}
return true;
}
以上是本次作业中涉及到的数据结构问题,包括栈的转换、队列的操作以及判断回文字符串。希望同学们认真完成,加深对数据结构的理解和应用。
点击了解资源详情
点击了解资源详情
点击了解资源详情
是空空呀
- 粉丝: 192
- 资源: 3万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析