数据结构课程设计选题(要命的数据结构课程设计题目啊!!!)
本文目录
- 要命的数据结构课程设计题目啊!!!
- 数据结构课程设计题
- 《数据结构》课程设计题目急急!!!!
- 一道数据结构课程设计题目
- 数据结构课程设计题目 1. 运动会分数统计 任务:参加运动会有n个学校,学校编号为1n比赛分成m个
- 几个数据结构的课程设计题目
- 《数据结构》课程设计
- 数据结构课程设计
- 数据结构课程设计题目(高手请进,解决后满意有分送)
- 数据结构课程设计题目,图的建立以及遍历
要命的数据结构课程设计题目啊!!!
//图的遍历#include《iostream.h》#include《stdio.h》#include《stdlib.h》int const MAXQSIZE=20;int const MAX_VERTEX_NUM=20;int const ERROR=-1;int const OK=1;typedef char VexType;typedef struct ArcNode { int adjvex; //该弧所指向的顶点的位置 struct ArcNode *nextarc; //指向下一个弧的指针 int weight; //权值}ArcNode;typedef struct VNode{ VexType data; //顶点信息 ArcNode *firstarc; //指向第一个依附顶点的弧的指针}VNode,AdjList.data; EnQueue(Q,w); } } } } }}int main(){ ALGraph G; Build_AdjList(G); cout《《“深度优先遍历:“《《endl; DFSTraverse(G); cout《《“广度优先遍历:“《《endl; BFSTraverse(G); return OK;}
数据结构课程设计题
最短路径问题 #include “datastru.h“#include 《stdio.h》#include 《malloc.h》#define MAX 10000MGRAPH create_mgraph(){/*建立有向图的邻接矩阵结构*/int i, j, k, h; MGRAPH mg; mg.kind = 3; printf(“\n\n输入顶点数和边数(用逗号隔开) : “); scanf(“%d,%d“, &i,&j); mg.vexnum = i; /*存放顶点数在mg.vexnum中 */ mg.arcnum = j; /*存放边点数在mg.arcnum中*/ fflush(stdin); for(i = 0; i 《 mg.vexnum; i++) { printf(“输入顶点 %d 的值 : “,i + 1); /*输入顶点的值*/ scanf(“%d“, &mg.vexs); /*有路径*/ } else printf(“%d 《- %d d= MAX\n “, i + 1, v0 + 1);/*无路径*/printf(“\n\n“);}
《数据结构》课程设计题目急急!!!!
又来了这个是学生的管理的 改改吧#include《iostream.h》#include“string.h“#include “process.h“#include 《stdio.h》struct Node{ int age; char* name; Node* next; };struct newnode{ char newname; int newage; };void AddTohead(Node* node,char* name,int age){ if(!node) return; Node* newnode = new Node; if(name) { int cd = strlen(name)+1; newnode-》name = new char ; strcpy(p-》name,newname); p-》age = age; }}}void Find(Node* node,char* findname){ if(!node) return; Node* head = node; Node* m = NULL; m = node-》next; if(!m) cout《《“链表为空的 不存在 请选择操作“《《endl; return; do { if (!strcmp(m-》name,findname)) break; m = m-》next; } while (m); if(m==NULL) { cout《《“nobody“《《endl; } else { cout《《m-》name《《“的年龄是“《《m-》age《《endl; }} void CleanTheWindow(){ system(“cls“);}void Keep(Node* node,char* fname){ Node* p = node-》next; newnode newd; FILE* ip = fopen(fname,“wb“); if(!ip) { cout《《“wrong“《《endl; return; } while(p) { strcpy(newd.newname,p-》name); newd.newage = p-》age; fwrite(&newd,sizeof(newnode),1,ip); p = p-》next; } fclose(ip);}void CreatList(Node* node,char* fname){ newnode newd; FILE* ip =fopen(fname,“rb“); if(!ip) { cout《《“wrong“《《endl; return; } Delete(node); while(!feof(ip)) { int a =fread(&newd,sizeof(newnode),1,ip); if(a==1) AddTohead(node,newd.newname,newd.newage); } fclose(ip); }void main(){ Node node; node.age = NULL; node.name = NULL; node.next = NULL; while(1){ cout《《“请选择您的操作1:添加到头部(输入姓名,年龄)“《《endl; cout《《“ 2:添加到尾部(输入姓名,年龄)“《《endl; cout《《“ 3:查找某人的年龄 “《《endl; cout《《“ 4:在某人的前面或后面插入“《《endl; cout《《“ (输入查找的姓名,输入要插入的名字,输入要插入的名字,和年龄)“《《endl; cout《《“ (输入插入类型1:在前插入 2:在后插入)“《《endl; cout《《“ 5:修改某人的信息(输入要修改人的名字 输入要修改的信息姓名,年龄)“《《endl; cout《《“ 6:删除某人的信息(输入你要删除的人的姓名)“《《endl; cout《《“ 7:删除链表“《《endl; cout《《“ 8:显示“《《endl; cout《《“ 9:清屏“《《endl; cout《《“ 10:保存“《《endl; cout《《“ 11:显示保存的内容“《《endl; cout《《“ 0:退出“《《endl; int a; cin》》a;//如何对输入的数据进行判断,比如我输入adfd字符型的时候,我想提示用户输入错误switch(a) { case 1: { cout《《“请输入要加在头部的姓名和年龄“《《endl; char* name = new char; int age; cin》》name; cin》》age; AddTohead(&node,name,age); cout《《“加入头部完成 请选择下一步操作“《《endl; } break; case 2: { cout《《“请输入要加在尾部的姓名和年龄“《《endl; char* name = new char; int age; cin》》name; cin》》age; AddToList(&node,name,age); cout《《“加入尾部完成 请选择下一步操作“《《endl; } break; case 3: { cout《《“请输入要查找人的姓名“《《endl; char* name = new char; cin》》name; Find(&node,name); } break; case 4: { cout《《“请按上面的输入“《《endl; char* name = new char; char* name2 = new char; int age; int cs; cin》》name; cin》》name2; cin》》age; cin》》cs; FindAndAdd(&node,name,name2,age,cs); cout《《“4输入完成“《《endl; } break; case 5: { cout《《“输入要修改的信息和修改的信息“《《endl; char* name = new char; char* name2 = new char; int age; cin》》name; cin》》name2; cin》》age; Change(&node,name,name2,age); cout《《“修改完成“《《endl; } break; case 6: { cout《《“输入要删除的姓名“《《endl; char* name = new char; cin》》name; DelSomeBody(&node,name); cout《《“删除完成“《《endl; } break; case 7: { cout《《“确定要删除全部的链表吗?1 是 2否“《《endl; int npd; cin》》npd; if(npd==1) { Delete(&node); } else break; } break; case 8: { cout《《“当前的链表是“《《endl; Show(&node); } break; case 9: { CleanTheWindow(); } break; case 10: { cout《《“请输入要保存的文件的名称“《《endl; char a; cin》》a; Keep(&node,a); } break; case 11: { cout《《“请输入保存的文件的名称“《《endl; char a; cin》》a; CreatList(&node,a); Show(&node); } break; case 0: { goto stop; } break; default :cout《《“输入有误重新输入“《《endl; } }stop: cout《《“exit“《《endl;}其实我也很菜的
一道数据结构课程设计题目
#include “iostream.h“#include “stdio.h“typedef struct node{ int data; struct node *next;}Lnode,*linklist;void creat(linklist &L){ int x; L=new Lnode;//给头指针申请一个空间 linklist p,u;//结构体指针变量 p=L; cout《《“请输入一些有序的整数,以负数结束:“《《endl; cin》》x; while(x》0) {u=new Lnode;//生成一个新结点 u-》data=x; p-》next=u; p=p-》next; cin》》x; } p-》next=NULL;}void putout(linklist L){ linklist p; p=L-》next; while(p!=NULL){ cout《《p-》data《《“ “; p=p-》next; } cout《《endl;}void insetrt(linklist &L){ int x; cout《《“请输入要插入的数: “《《endl; cin》》x; linklist p,u; p=L; while(p-》next!=NULL&&p-》next-》data《=x) p=p-》next; if(p-》next==NULL||p-》next-》data》x) { u=new Lnode; u-》data=x; u-》next=p-》next; p-》next=u; } }void main(){ linklist L;//定义头指针L int x; do{ cout《《“1 创建链表 \n2 插入结点\n3 输出结点\n0 退出系统\n“; cout《《“请输入你的选择:“; cin》》x; switch(x){ case 1: creat(L);break;//创建函数,创建一个链表 case 2: insetrt(L);//插入函数,对有序链表进行插入 break; case 3: putout(L);//显示函数 break; case 0: break; } }while(x!=0); cout《《“\n“《《“谢谢使用!“《《endl;}设计得不好,希望楼主采纳。
数据结构课程设计题目 1. 运动会分数统计 任务:参加运动会有n个学校,学校编号为1n比赛分成m个
#include《iostream》 #include《string》 #include《iomanip》 #include《fstream》using namespace std; int n; //n个学校 int m; //m个男子项目 int w; //w个女子项目 struct pro //表示项目的结构体 { string name; //项目名称 int snum; //前5名学校的编号 }p; struct school //表示学校的结构体 { int num; string name; //学校名称 int score; //学校总分 int male; //男子总分 int female; //女子总分 }sch; int integral=;//前五名得分 void input() { int i,j,y,x; printf(“输入学校数目:“); y=0; while(1) { scanf(“%d“,&n); if(n》=1&&n《=20)y=1; if(y)break; else printf(“输入数据有误,请重新输入:“); } for(i=1;i《=n;i++) { printf(“输入第%d个学校的名称:“,i); cin》》sch.name《《endl; cout《《endl; } void solve() //菜单函数{ int z; while(1) { printf(“\n选择您需要的操作(选择序号):\n“); printf(“1.按学校编号排序输出\n“); printf(“2.按学校总分排序输出\n“); printf(“3.按学校男总分排序输出\n“); printf(“4.按学校女总分排序输出\n“); printf(“5.查询某个学校成绩\n“); printf(“6.查询某个项目成绩\n“); printf(“7.结束\n\n“); scanf(“%d“,&z); if(z==1)bianhao(); if(z==2)zongfen(); if(z==3)malezf(); if(z==4)femalezf(); if(z==5)cxsch(); if(z==6)cxxm(); if(z==7)break; } } int main() //主函数{ input(); solve(); return 0; }
几个数据结构的课程设计题目
我们数据结构的题目比较基础,得分也大多在90分左右,如果要你给邮箱,我发给你大概就是:货郎担问题弗洛伊德问题平衡二叉树图形化求解。。。
《数据结构》课程设计
#include 《stdio.h》#include 《stdlib.h》#include 《string.h》#include 《conio.h》void read_func(void);void write_func(void);void insert_func(void);void sort_func(void);void delete_func(void);void display_func(void);void modify_func(void);void anykey_func(void);struct student{char name;int score;struct student *next;};struct student *ptr, *head, *current, *prev;//全部声明为全局变量int main(void){char option1;system(“cls“);//清屏read_func();while(1){printf(“****************************************\n“);printf(“ 1.insert\n“);printf(“ 2.delete\n“);printf(“ 3.display\n“);printf(“ 4.modify\n“);printf(“ 5.quit\n“);printf(“****************************************\n“);printf(“ Please enter your choice (1-5)...“);option1=getche();printf(“\n“);switch(option1){case ’1’:insert_func();break;case ’2’:delete_func();break;case ’3’:display_func();break;case ’4’:modify_func();break;case ’5’:// write_func();exit(0);//这里也处理的比较好}}}void read_func(void){FILE *fptr;head=(struct student *) malloc(sizeof(struct student));head-》next = NULL;/* 开始时,若表中不存在数据,则要求输入第一笔数据 */if((fptr=fopen(“slist.dat“,“r“)) == NULL){printf(“ Data file not exist\n“);printf(“ Press any key to edit first record...\n“);getch();insert_func();//不存在就实行插入操作}else{ptr=(struct student *) malloc(sizeof(struct student));while(fscanf(fptr, “%s %d“, ptr-》name, &ptr-》score) != EOF){sort_func();ptr=(struct student *) malloc(sizeof(struct student));}fclose(fptr);}}void write_func(void){FILE *fptr;fptr=fopen(“slist.dat“,“w“);current=head-》next;while(current != NULL){fprintf(fptr, “%s %d\n“, current-》name, current-》score);current = current-》next;}fclose(fptr);}void insert_func(void) //一插入就比较字符串(2 2想比较很简单) 不是等到全部插完了才比较{char s_temp;ptr=(struct student *) malloc(sizeof(struct student));printf(“ Student name : “);gets(ptr-》name);printf(“ Student score: “);gets(s_temp);ptr-》score = atoi(s_temp);//把字符串转化为 整数 为什么不直接把成绩存在ptr-》score ???sort_func();}/*以分数高低由大到小排列*/void sort_func(void){//插入数据prev = head;current = head-》next;while ((current != NULL) && (current-》score 》 ptr-》score)){prev = current;current = current-》next;}ptr-》next = current;prev-》next = ptr;}void delete_func(void){char del_name;printf(“ Delete student name: “);gets(del_name);prev = head;current = head-》next;while ((current != NULL) && (strcmp(current-》name , del_name)!=0))//用到了strcmp 比较字符串{prev = current;current = current-》next;}if (current != NULL){prev-》next = current-》next;free(current);printf(“ %s student record deleted\n“,del_name);}elseprintf(“ Student %s not found\n“,del_name);anykey_func();}void modify_func(void){char n_temp,s_temp;printf(“ Modify student name: “);gets(n_temp);//这样输入姓名current=head-》next;while ((current != NULL) && (strcmp(current-》name , n_temp)!=0)){prev = current;current = current-》next;}if (current != NULL){printf(“ **************************\n“);printf(“ Student name : %s\n“,current-》name);printf(“ Student score: %d\n“,current-》score);printf(“ **************************\n“);printf(“ Please enter new score: “);gets(s_temp);current-》score = atoi(s_temp);printf(“ %s student record modified\n“,n_temp);}elseprintf(“ Student %s not found\n“,n_temp);anykey_func();}void display_func(void){int count=0;system(“cls“);if(head-》next == NULL){printf(“ No student record\n“);}else{printf(“ NAME SCORE\n“);printf(“ ---------------------------\n“);current=head-》next;while(current != NULL){printf(“ %-20s %3d\n“, current-》name, current-》score);count++;current=current-》next;if(count % 20 == 0) getch();}printf(“ ---------------------------\n“);printf(“ Total %d record(s) found\n“, count);}anykey_func();}void anykey_func(void)//任何键继续{printf(“ Press any key to continue...“);getch();printf(“\n“);}
数据结构课程设计
#include “stdio.h“#include “time.h“#define MAXNUM 5 //停车场车位数 #define PRICE 2.0 //每小时收费 typedef struct car //定义车的结构体{ char num; //车牌号(最多10个字节) struct tm intime; //进入时间 struct tm outtime; //离开时间 int expense; //费用 int length; //停车时长 int position; //停车位 }CAR;typedef struct //栈结构 { CAR car.intime); //输出日期 } printf(“\t\t\t共%d辆“, s-》top + 1); if (s-》top == MAXNUM - 1) printf(“(已满)\n“); else printf(“(还可停放放%d辆)\n“, MAXNUM - 1 - s-》top); printf(“\n“); } separator(40,’_’,1);}void ShowAisle(CarChainQueue * q)//显示过道上车辆的情况 { if (!ChainQueueIsEmpty(q)) //若队列不为空 { CarNodeType *p; p = q-》head-》next; //队列中的第1辆车 printf(“\n\n过道使用情况\n“); separator(30,’_’,1); printf(“车牌\t进入时间\n“); while (p!= NULL) //队列不为空 { printf(“%s\t“, p-》data.num); PrintDate(p-》data.intime);; //显示该辆车的信息 p = p-》next; //下一辆 } } else printf(“\n过道上没有车在等待\n“); separator(30,’_’,1); printf(“\n\n“);}void ShowAll(SeqStack *s, CarChainQueue *q) //查看车位和过道使用情况 { ShowPark(s); //显示车位使用情况 ShowAisle(q); //显示过道使用情况 }void InPark(SeqStack * s, CarChainQueue * q) //车辆进入停车场 { CAR car; struct tm *gm_date; time_t seconds; time(&seconds); gm_date = gmtime(&seconds);; printf(“\n车牌号:“); scanf(“%s“,&car.num); car.intime=*gm_date; //进入停车场的时间 if (!StackIsFull(s) && ChainQueueIsEmpty(q)) //如果车位未占完,且过道上没有车 { car.position = (s-》top) + 2; //车位号 StackPush(s, car); //车辆直接进入车位 ShowPark(s); //输出现在停车场的情况 } else if (StackIsFull(s) || !ChainQueueIsEmpty(q)) //如果车位已满,过道上还有车,则必须放在过道上 { printf(“提示:车位满,只有先停放在过道中。\n“); car.position = MAXNUM; ChainQueueIn(q, car); //停放在过道 ShowPark(s); //显示车位的情况 ShowAisle(q); //输出过道上的情况 }}void PrintRate(CAR *car) //离开时输出费用等情况 { printf(“\n\n 账单\n“ ); separator(30,’_’,1); printf(“车牌:%s\n“, car-》num); printf(“停车位置:%d\n“, car-》position); printf(“进入时间:“); PrintDate(car-》intime); printf(“离开时间:“); PrintDate(car-》outtime); printf(“停车时间(秒):%d\n“, car-》length); printf(“费用(元):%d\n“, car-》expense); separator(30,’_’,1); printf(“\n\n“);}void OutPark(SeqStack *s, CarChainQueue *q) //车出站出当时过道上的情况放在过道上直接进入车站{ struct tm *gm_date; time_t seconds; SeqStack p; //申请临时放车的地方 StackInit(&p); char nowtime; int i, pos; CAR car; if (StackIsEmpty(s)) //如果车位中没有车辆停放 { printf(“所有车位都为空,没有车辆需要离开!\n“); } else { printf(“现在车位使用情况是:\n“); ShowPark(s); //输出车位使用情况 printf(“哪个车位的车辆要离开:“); scanf(“%d“, &pos); if (pos 》 0 && pos 《= s-》top + 1) //输入车位号正确 { for (i = s-》top + 1; i 》 pos; i--) //在将pos车位之后停的车放入临时栈,以使pos车位的车出来 { car = StackPop(s); //出栈 car.position = car.position - 1;//修改车位号 StackPush(&p, car); //将车辆放入临时栈 } car = StackPop(s); //将位于pos车位的车辆出栈 time(&seconds); gm_date = gmtime(&seconds); //获取当前时间 car.outtime=*gm_date;//离开时间 car.length=mktime(&car.outtime)-mktime(&car.intime); //停车场中停放时间 car.expense=(car.length/3600+1)*PRICE; //费用 PrintRate(&car); //输出车出站时的情况---进入时间,出站时间,原来位置,花的费用等 while (!StackIsEmpty(&p)) //将临时栈中的车重新进入车位 { car = StackPop(&p); //从临时栈中取出一辆车 StackPush(s, car); //将车进入车位 } while(!StackIsFull(s) && !ChainQueueIsEmpty(q)) //如果车位未满, 且过道上还有车 { car = ChainQueueOut(q); //将最先停在过道中的车辆进入车位 time(&seconds); gm_date = gmtime(&seconds); //获取当前时间 car.intime = *gm_date;//保存进入车位的时间 StackPush(s, car); //将车辆进入车位 } } else //车位号输入错误 { printf(“车位号输入错误,或该车位没有车辆!\n“); } }}int main(){ SeqStack Park; //停车场栈 CarChainQueue Aisle; //过道链表 StackInit(&Park); ChainQueueInit(&Aisle); char choice; do{ printf(“\n\n“); separator(10,’ ’,0); printf(“停车场管理\n“); separator(30,’_’,1); printf(“1.车辆进入\n“); printf(“2.车辆离开\n“); printf(“3.查看停车场情况\n“); printf(“0.退出系统\n“); separator(56,’_’,1); printf(“提示:本停车场有%d个车位,车位停满后的车辆将停放在过道上。\n“,MAXNUM); printf(“本停车场时计费,收费标准:%.2f元/小时,过道上不收费。\n\n“,PRICE); printf(“\n选择操作(0~3):“); fflush(stdin); choice=getchar(); switch (choice) { case ’1’: //车辆进入 InPark(&Park,&Aisle); break; case ’2’: //车辆离开 OutPark(&Park,&Aisle); break; case ’3’: ShowAll(&Park,&Aisle); break; } }while(choice!=’0’); return 0;}
数据结构课程设计题目(高手请进,解决后满意有分送)
#include “stdio.h“
typedef int ElemType;
/* 链队列结点结构 */
typedef struct node
{
ElemType data;
struct node *next;
} LNode;
/* 链队列结构 */
typedef struct Queue
{
LNode *front;
LNode *rear;
} Queue;
Queue *InitQueue()
{
Queue *temp;
temp = (Queue *)malloc(sizeof(Queue));
temp-》front = (LNode *)malloc(sizeof(LNode));
temp-》rear = temp-》front;
return temp;
}
/* 判断链队列是否为空 */
int IsEmpty(Queue *Q)
{
return (Q-》front==Q-》rear ? 1 : 0);
}
/* 将值为data的结点加入到链队列中 */
void EnQueue(Queue *Q, ElemType data)
{
LNode *temp = (LNode *)malloc(sizeof(LNode));
temp-》data = data;
temp-》next = NULL;
Q-》rear-》next = temp;
Q-》rear = temp;
}
/* 从链队列中移出元素,保存在data中 */
void DeQueue(Queue *Q, ElemType *data)
{
LNode *temp;
if(IsEmpty(Q))
{
printf(“Error! Queue is empty.“);
return;
}
temp = Q-》front-》next;
*data = temp-》data;
Q-》front-》next = temp-》next;
if(temp == Q-》rear)
{
Q-》rear = Q-》front;
}
free(temp);
}
/* 创建size个结点的链队列 */
void CreateQueue(Queue *Q, int size)
{
ElemType data;
int i;
for(i=0; i《size; i++)
{
printf(“Element %d : “, i+1);
scanf(“%d“, &data);
EnQueue(Q, data);
}
}
/* 取链队列的队首元素 */
ElemType GetFirstNode(Queue *Q)
{
return (IsEmpty(Q) ? NULL : Q-》front-》next-》data);
}
/* 取链队列的队尾元素 */
ElemType GetLastNode(Queue *Q)
{
return (IsEmpty(Q) ? NULL : Q-》rear-》data);
}
/* 清空链队列 */
void Clear(Queue *Q)
{
LNode *temp, *p;
if(IsEmpty(Q))
{
return;
}
for(temp=Q-》front-》next; temp!=NULL;)
{
p = temp;
temp = temp-》next;
free(p);
}
Q-》rear = Q-》front;
}
/* 输出链队列全部结点的值 */
void PrintNode(Queue *Q)
{
LNode *curr;
if(IsEmpty(Q))
{
printf(“Queue is empty!\n“);
return;
}
for(curr=Q-》front-》next; curr!=NULL; curr=curr-》next)
{
printf(“%d “, curr-》data);
}
printf(“\n“);
}
void main()
{
Queue *Q = InitQueue();
int size;
ElemType data;
int choice;
while(1)
{
system(“cls“);
printf(“***********************************************\n“);
printf(“ Link Queue Operation Demo\n\n“);
printf(“ 1. Create queue\n“);
printf(“ 2. Queue is empty?\n“);
printf(“ 3. In queue\n“);
printf(“ 4. Out queue\n“);
printf(“ 5. Get first element\n“);
printf(“ 6. Get last element\n“);
printf(“ 7. List nodes of queue\n“);
printf(“ 8. Clear queue\n“);
printf(“ 0. Exit\n\n“);
printf(“***********************************************\n“);
printf(“ Your choice : “);
scanf(“%d“, &choice);
switch(choice)
{
case 0:
{
return;
}
case 1:
{
printf(“Input size of queue : “);
scanf(“%d“, &size);
CreateQueue(Q, size);
break;
}
case 2:
{
if(IsEmpty(Q))
{
printf(“Queue is empty!\n“);
}
else
{
printf(“Queue is not empty!\n“);
}
break;
}
case 3:
{
printf(“Input the value of queue node : “);
scanf(“%d“, &data);
EnQueue(Q, data);
break;
}
case 4:
{
DeQueue(Q, &data);
printf(“Value of queue node Deleted : %d\n“, data);
break;
}
case 5:
{
printf(“First element : %d\n“, GetFirstNode(Q));
break;
}
case 6:
{
printf(“Last element : %d\n“, GetLastNode(Q));
break;
}
case 7:
{
printf(“All queue nodes : \n“);
PrintNode(Q);
break;
}
case 8:
{
Clear(Q);
printf(“Clear nodes successfully from queue!\n“);
break;
}
default:
{
break;
}
}
system(“pause“);
}
}
运行界面:
数据结构课程设计题目,图的建立以及遍历
//图的遍历算法程序 //图的遍历是指按某条搜索路径访问图中每个结点,使得每个结点均被访问一次,而且仅被访问一次。图的遍历有深度遍历算法和广度遍历算法,程序如下: #include 《iostream》 //#include 《malloc.h》 #define INFINITY 32767 #define MAX_VEX 20 //最大顶点个数 #define QUEUE_SIZE (MAX_VEX+1) //队列长度 using namespace std; bool *visited; //访问标志数组 //图的邻接矩阵存储结构 typedef struct{ char *vexs; //顶点向量 int arcs=false; BFS(G); printf(“\n程序结束.\n“); } 输出结果为(红色为键盘输入的数据,权值都置为1): 输入顶点数和弧数:8 9 输入8个顶点. 输入顶点0:a 输入顶点1:b 输入顶点2:c 输入顶点3:d 输入顶点4:e 输入顶点5:f 输入顶点6:g 输入顶点7:h 输入9条弧. 输入弧0:a b 1 输入弧1:b d 1 输入弧2:b e 1 输入弧3:d h 1 输入弧4:e h 1 输入弧5:a c 1 输入弧6:c f 1 输入弧7:c g 1 输入弧8:f g 1 广度优先遍历: a b d h e c f g 深度优先遍历: a b c d e f g h 程序结束.
更多文章:
ready go(ready go ready go 是什么歌)
2025年2月9日 17:10
无刷电励磁电机(无刷电励磁电机是什么,无刷电励磁电机是什么知识)
2025年4月2日 00:10
w3school手机版下载(请问去哪下载3wschool,我想自学web前端)
2025年3月19日 14:50
forthing是什么车(“forthing”是什么车的车标)
2025年2月13日 16:10
webuploader不支持你的浏览器(平时能打开的网页显示不支持当前浏览器 怎么解决)
2025年3月6日 09:50
switch语句中case后多条语句(c++中 switch语句的各个case分支可以有多条语句,举例说明什么是多条语句)
2025年3月17日 08:00
idle python官网下载(为什么我的Python没有IDLE)
2025年2月13日 17:50
guardians(guard和guardian都是守护的意思吗有什么不同)
2025年3月29日 20:50