数据结构算法练习
Posted 黑胡子大叔的小屋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构算法练习相关的知识,希望对你有一定的参考价值。
数据结构与算法
栈部分
顺序栈
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxSize 10
typedef struct arraystack
{
int Data[MaxSize]; // 存储元素的数组
int topIdx; //栈顶指针
}Node;
//入栈
void push(struct arraystack *node,int value){
node->Data[node->topIdx] = value;
node->topIdx++;
}
//弹栈
void pop(Node node){
node.topIdx--;
}
//栈展示
void show(Node node){
int i;
for(i = 0; i < node.topIdx; i++){
printf("value: %d \\n",node.Data[i]);
}
}
//判断栈空 返回0为空 非0为不空
int stackempty(Node node){
printf("node.topIdx:%d\\n",node.topIdx);
if(node.topIdx != 0){
return 1;
}
return 0;
}
//判断栈满 返回0为满 非零为不满
int stackfull(Node node){
if(node.topIdx != MaxSize){
return 1;
}
return 0;
}
int main(){
Node node;
node.topIdx = 0;
int value,j;
int empty,full;
int num;
empty = stackempty(node);
if(empty == 0){
printf("栈空!\\n");
}else{
printf("栈非空:%d\\n",empty);
}
printf("开始键入个数:\\n");
scanf("%d",&num);
for(j = 0; j < num;j++){
full = stackfull(node);
if(full == 0){
printf("栈满!topindex为:%d\\n",node.topIdx);
}else{
printf("请输入:");
scanf("%d",&value);
push(&node,value);
}
}
empty = stackempty(node);
if(empty != 0){
printf("栈不空!\\n");
}
show(node);
}
队列
顺序队列
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxLen 20
typedef struct Query{
int data[MaxLen];
int front;
int rear;
}*Q;
//初始化队列
void Init(Q query){
query->front=0;
query->rear=0;
}
//入队
int InQuery(Q query,int value){
int ret = 0;
if(query->rear == MaxLen){
printf("队列满");
ret = 1;
}
printf("入队:%d\\n",value);
query->data[query->rear++] = value;
error:
return ret;
}
//出队
int OutQuery(Q query){
int ret = 0;
printf("出队数据:%d \\n",query->data[query->front]);
if(quer->rear == 0){
printf("队列空!");
ret = 1;
goto error;
}
query->front ++;
error:
return ret;
}
//输出
void Show(Q query){
int i;
for(i = query->front;i < query->rear; i++){
printf("输出[%d]: %d \\n",i,query->data[i]);
}
}
int main(){
struct Query query;
Init(&query);
InQuery(&query,1);
InQuery(&query,2);
InQuery(&query,3);
InQuery(&query,4);
InQuery(&query,5);
printf("出队\\n");
OutQuery(&query);
Show(&query);
}
以上是关于数据结构算法练习的主要内容,如果未能解决你的问题,请参考以下文章
Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段
有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]