导读: 6 0让我看看你的步法篇一《数据结构算法VC++6 0程序集-我敲的几个程序,很多无法一次上传!先上传一部分看看效果》 ...
本文是中国招生考试网(www.chinazhaokao.com)成考报名频道为大家整理的《6.0让我看看你的步法》,供大家学习参考。
6.0让我看看你的步法篇一
《数据结构算法VC++6.0程序集-我敲的几个程序,很多无法一次上传!先上传一部分看看效果》
const int MaxV = 10;
struct edgenode{
int adjvex;
int weight;
edgenode *next;
edgenode() {}
edgenode(int d,int w):adjvex(d),weight(w) { next = NULL; } };
struct top{
char data;
edgenode *adj;
};
struct RCW{
int row;
int col;
int weight;
};
class AdjAdjion{
private:
top g[MaxV];
int size;
int numE;
public:
edgenode **GL;
AdjAdjion() {}
AdjAdjion(edgenode **gl,int n);
bool GraphEmpty() { return size==0; }
int numV() { return size; }
int NumEdges() { return numE; }
char GetValue(const int i);
int GetWeight(const int v1,const int v2);
void InsertV(const char &v);
void InsertEdges(const int v1,const int v2,int weight);
void InsertEdges(const int v1,const int v2,int weight,int k1); void deleteV(const int v);
void deleteEdges(const int v1,const int v2);
void deleteEdges(const int v1,const int v2,int k1);
void deleteAdjion(int n);
void CreateGraph(char V[],int n,RCW r[],int e);
void CreateAdjion(int n,int k1,int k2,RCW r[]);
void dfsAdjion(bool *&visited,int i,int n);
void bfsAdjion(bool *&visited,int i,int n);
void check(int n,int &i,int &j);
void dfsAdjion(int n);
void bfsAdjion(int n);
};
#include<iostream>
#include<iomanip>
using namespace std;
#include"(6.3)graph.h"
AdjAdjion::AdjAdjion(edgenode **gl,int n)
{
GL = gl;
for(int i=0;i<n;i++)
g[i].adj = GL[i] = NULL;
size= numE =0;
}
void AdjAdjion::CreateAdjion(int n,int k1,int k2,RCW r[]) {
int i,j,k,e,w;
cout<<"cin the e"<<endl;
cin>>e;
if(k1==0&&k2==0){
cout<<"cin the e numE \n";
for(k=1;k<=e;k++){
cin>>i>>j;
check(n,i,j);
edgenode *p = new edgenode;
p->adjvex = j;
p->weight = 1;
p->next = GL[i];
GL[i] = p;
p = new edgenode;
p->adjvex = i;
p->weight = 1;
p->next = GL[j];
GL[j] = p;
}
}
else if(k1==0&&k2!=0){ cout<<"cin the e numE \n"; for(k=0;k<e;k++){ i = r[k].row; j = r[k].col; w = r[k].weight; check(n,i,j); edgenode *p = new edgenode; p->adjvex = j; p->weight = w; p->next = GL[i]; GL[i] = p; p = new edgenode; p->adjvex = i; p->weight = w; p->next = GL[j]; GL[j] = p; } } else if(k1!=0&&k2==0){ cout<<"cin the e numE \n"; for(k=1;k<=e;k++){ cin>>i>>j; check(n,i,j); edgenode *p = new edgenode; p->adjvex = j; p->weight = 1; p->next = GL[i]; GL[i] = p; } } else if(k1!=0&&k2!=0){ cout<<"cin the e numE \n"; for(k=0;k<e;k++){ cin>>i>>j>>w; check(n,i,j); edgenode *p = new edgenode; p->adjvex = j; p->weight = w; p->next = GL[i]; GL[i] = p; } } size = n;
numE = e;
}
void AdjAdjion::dfsAdjion(bool *& visited,int i,int n) {
cout<<g[i].data<<":"<<i<<" ";
visited[i] = true;
edgenode *p = g[i].adj;
while(p!=NULL){
int j =p->adjvex;
if(!visited[j])
dfsAdjion(visited,j,n);
p = p->next;
}
}
void AdjAdjion::bfsAdjion(bool *& visited,int i,int n) {
const int MaxLength = 30;
int Q[MaxLength];
int front =0,rear =0;
cout<<g[i].data<<":"<<i<<" ";
visited[i] = true;
rear = (rear+1)%MaxLength;
Q[rear] = i;
edgenode *p;
while(front!=rear){
front = (front+1)%MaxLength;
p = g[Q[front]].adj;
while(p!=NULL){
int j = p->adjvex;
if(!visited[j]){
cout<<g[j].data<<":"<<j<<" ";
visited[j] = true;
rear = (rear+1)%MaxLength;
Q[rear] = j;
}
p = p->next;
}
}
}
void AdjAdjion::check(int n,int &i,int &j)
{
if(i<0||i>=n||j<0||j>=n)
cerr<<"error cin again"<<endl;
else
return;
cin>>i>>j;
}
char AdjAdjion::GetValue(const int i)
{
if(i<0||i>=size){
cerr<<"error eixt(1)";
exit(1);
}
return g[i].data;
}
int AdjAdjion::GetWeight(const int v1,const int v2)
{
if(v1<0||v1>=size||v2<0||v2>=size){
cerr<<"error exit"<<endl;
exit(1);
}
edgenode *p = g[v1].adj;
while(p!=NULL&&p->adjvex<v2)
p = p->next;
if(!p||v2!=p->adjvex){
cerr<<"v1 v2 not exist exit"<<endl;
exit(1);
}
return p->weight;
}
void AdjAdjion::InsertV(const char &v)
{
g[size].adj = NULL;
g[size].data = v;
size++;
}
void AdjAdjion::InsertEdges(const int v1,const int v2,int weight) {
//this k1!=0
//? k1==0 exchange v1 v2
if(v1<0||v1>=size||v2<0||v2>=size){
最新推荐成考报名
更多- 歇后语_歇后语大全_歇后语大全及答案_爆笑歇后语
- 大学排名_大学排名2018排行_大学查询_中国大学名单
- 成语大全_四字成语_在线成语词典_成语查询
- 成语接龙大全查询,成语接龙游戏,在线成语接龙
- 全国安全教育平台入口_学校安全教育平台
- 社保查询网-社会保障卡查询,社会保险查询,社保网上查询
- 汉字简体繁体转换_在线繁体字转换工具
- 数字大写转换|人民币金额(数字)大小写转换在线工具
- 年龄计算器实际岁数计算器 - 周岁虚岁计算器
- 产假计算器-算产假计算器在线2018-2018年产假自动计算器
- 预产期计算器-怀孕孕期计算器-怀孕天数计算
- 中国文库网-教育资源网-范文文章
- 邮编区号查询网
- 致富商机网-致富点子_创业项目
- 创业项目网--最热门的投资项目
- 中国邮政邮编查询号码
- 电话区号查询
- 全国车牌号归属地大全
- 在线网速测试|宽带速度测试
- 人民币汇率查询
- ●理财有没有风险 金融互联网理财
- ●qq网名
- ●2016最新伤感说说
- ●谈笑风生造句
- ●读书的名言
- ●资产清查报告
- ●贫困户申请书
- ●财务自查报告
- ●离婚起诉书
- ●赞美老师的演讲稿
- ●车间管理
- ●车辆购置税
- ●跨越百年的美丽读后感
- ●跟女友离别的话
- ●超市管理制度
- ●起诉状范本
- ●赠别诗大全
- ●描写夏天的句子
- ●描写友谊的诗句
- ●迁户口申请书
- ●转正申请表范本
- ●这个杀手不太冷台词
- ●运动会稿子精选
- ●那么那么造句
- ●送给男朋友的情话大全
- ●钳工实训报告
- ●霸气说说大全
- ●骂人不带脏字的
- ●幼儿园见习个人总结
- ●追女孩子的短信