创建一个图,使用邻接表来存储点和边。输入起点与终点,输出两点间的所有路径。
图中两点间所有路径源代码
#include<iostream>
#include<stdlib.h>
using namespace std;
#define VEX_MAXNUM 20
#define STACK_H_INCLUDED
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
typedef struct SqStack {
int* base;
int* top;
int stacksize;
}SqStack;
void CreateStack(SqStack* S) {
S->base = (int*)malloc(STACK_INIT_SIZE * sizeof(int*));
if (!S->base) {
cout << "存储空间分配失败!" << endl;
exit(-1);
}
S->top = S->base;
S->stacksize = STACK_INIT_SIZE;
}
void DestroySqStack(SqStack* S) {
free(S->base);
S->base = S->top = NULL;
S->stacksize = 0;
}
void DisplaySqStack(SqStack* S) {
int* p;
if (S->top == S->base) {
cout << "栈空!" << endl;
exit(-1);
}
p = S->base;
while (p < S->top-1)
cout << *p++<<"->";
cout << *p++;
}
void Push(SqStack* S, int data) {
if (S->top - S