数据结构课程设计选题(要命的数据结构课程设计题目啊!!!)

2025-04-07 18:20:01 0

数据结构课程设计选题(要命的数据结构课程设计题目啊!!!)

本文目录

要命的数据结构课程设计题目啊!!!

//图的遍历#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 程序结束.

数据结构课程设计选题(要命的数据结构课程设计题目啊!!!)

本文编辑:admin

更多文章:


ready go(ready go ready go 是什么歌)

本文目录ready go ready go 是什么歌ready go什么意思readygo是什么意思,怎么读宠物小精灵里的ready go的罗马音,中文和日语日本ACG的《Ready GO.》 歌词“readygo”是什么意思怎么读read

2025年2月9日 17:10

无刷电励磁电机(无刷电励磁电机是什么,无刷电励磁电机是什么知识)

本文目录无刷电励磁电机是什么,无刷电励磁电机是什么知识无刷励磁机的工作原理无刷电励磁电机 有什么用无刷电励磁电机谁发明的无刷电机是哪国发明的无刷电励磁电机是什么,无刷电励磁电机是什么知识无刷就是没有碳刷,没有滑环跟碳刷的磨损更不需要更换。无

2025年4月2日 00:10

w3school手机版下载(请问去哪下载3wschool,我想自学web前端)

本文目录请问去哪下载3wschool,我想自学web前端怎么从w3school官网下载其离线的客户端呢请问去哪下载3wschool,我想自学web前端http://www.w3school.com.cn/ 这是网页版 下载的是chm格式的,

2025年3月19日 14:50

forthing是什么车(“forthing”是什么车的车标)

本文目录“forthing”是什么车的车标FOPTHING啥车标forthing是什么油车还是电车forthingtsevo是什么车forthing车标是什么forthing是什么牌子的suv“forthing”是什么车的车标forthin

2025年2月13日 16:10

java爬虫教程(爬虫在哪里可以学习,出来能找到工作吗)

本文目录爬虫在哪里可以学习,出来能找到工作吗Java爬虫问题,网页核心文案是js动态获取的,如何使用java获取爬虫在哪里可以学习,出来能找到工作吗爬虫学习不难,如果时间充足完全可以自己学习。没有必要去什么地方学习。先从Python基础学起

2025年2月28日 07:20

逗号表达式的运算规则(c语言 逗号表达式)

本文目录c语言 逗号表达式逗号表达式的运算法则是怎么样的逗号表达式的用法c语言逗号表达式的运算规则逗号表达式怎么用c语言逗号表达式的运算规则是什么逗号表达式的计算C语言中的逗号表达式 是怎么计算的 如果两值或两式子之间有个逗号 那结果是什么

2025年3月23日 00:00

brat什么意思字母圈(brat属于m还是sub)

本文目录brat属于m还是subbrat和sub有区别吗brat是什么意思sub和brat的区别女朋友brat是什么意思brat属于m还是subbrat属于sub。字母圈的brat,bratsub是sub当中的dramaqueen,喜欢违抗

2025年3月4日 22:50

新网和万网的区别?新网究竟有多烂

本文目录新网和万网的区别新网究竟有多烂新网是哪年成立新网银行客服电话新网客服电话怎么样新网银行是正规银行吗新网和万网,哪个比较好新网和万网的区别首先说一下两家公司的硬件区别:两家公司都获得ICANN和CNNIC授权的域名注册服务机构,都是五

2025年3月9日 10:50

webuploader不支持你的浏览器(平时能打开的网页显示不支持当前浏览器 怎么解决)

本文目录平时能打开的网页显示不支持当前浏览器 怎么解决webuploader该怎么配置啊,php的用webuploader怎么解决跨域上传文件的问题为什么我的浏览器都不支持WEBGLweb浏览器兼容性问题怎么解决办法webuploader

2025年3月6日 09:50

html table模板(如何设计 html table)

本文目录如何设计 html tablehtml表格制作标签如何设计 html table一个简单的 HTML 表格,包含两行两列:《table border=“1“》 《tr》 《th》Month《/th》 《th》Savin

2025年4月2日 04:10

switch语句中case后多条语句(c++中 switch语句的各个case分支可以有多条语句,举例说明什么是多条语句)

本文目录c++中 switch语句的各个case分支可以有多条语句,举例说明什么是多条语句C语言switch case后如何执行多条命令switch语句中,case后面的语句序列中一定要有break语句吗switch语句中case能跟多个

2025年3月17日 08:00

discovered翻译(发现的英文单词是)

本文目录发现的英文单词是根据要求翻译下列句子: 1.我发现听有趣的事情是语言学习的秘诀(要求用discover, the英语discovered an alarming trend怎么翻译住在意大利2000年以前发现的这句话翻译成英文要用d

2025年3月21日 20:50

lase是什么意思(last的意思是什么)

本文目录last的意思是什么last 是什么意思last的中文是什么意思last是什么意思Last.是什么意思last的意思是什么last 英That last item may have stung the most.最后一条或许最伤人

2025年2月28日 20:20

opengl超级宝典第七版(opengl程序中的头文中<GL/glut.h>和<gl/glut.h>没有区别吧,请教大神一下,有好的opengl教程么)

本文目录opengl程序中的头文中和没有区别吧,请教大神一下,有好的opengl教程么opengl超级宝典和OpenGL编程指南哪个适合新手哪个好opengl程序中的头文中和没有区别吧,请教大神一下,有好的opengl教程么《GL/glut

2025年3月20日 10:10

idle python官网下载(为什么我的Python没有IDLE)

本文目录为什么我的Python没有IDLEpython的安装和环境变量的设置,IDLE的基本功能实验中遇到的困难和解决方法【学习python】请问下载哪个版本python学习建议谢谢!IDLE shell怎么下载为什么我的Python没有I

2025年2月13日 17:50

caught什么意思(请问caught是什么意思)

本文目录请问caught是什么意思caught的原形是什么caught怎么读有谁知道caught 是什么意思吗请问caught是什么意思caught英    美   v.抓住,捕捉,赶上动词catch的过去式和过去分词用作动词 (v.)I 

2025年2月12日 13:40

guardians(guard和guardian都是守护的意思吗有什么不同)

本文目录guard和guardian都是守护的意思吗有什么不同guardians与custodian有何不同guard和guardian都是守护的意思吗有什么不同guard意为警卫、士兵,例:a security guard 安全警卫;gu

2025年3月29日 20:50

proe教程下载(proe5.0视频教程下载)

本文目录proe5.0视频教程下载那个有proe3.0教程电子书谁有可以免费下载proe视频并带学习所需文件的网站Proe怎么安装啊,下载好了,安装不了,网上教程也不行proe5.0视频教程下载ProE5.0完全自学_(H).zip(870

2025年2月24日 09:50

什么是url重写(什么叫url重写(c#))

本文目录什么叫url重写(c#)url重写有几种方式什么叫url重写技术伪静态,静态化,URL重写之间有什么区别什么是url重写URL重写有几种方式什么是URL重写什么叫url重写(c#)就是把查询字符串合并进URL中,其实质就是一种呈现手

2025年3月6日 14:20

正则表达式数字(正则表达式如何表示任意整数)

本文目录正则表达式如何表示任意整数正则表达式以四位数字开头java中怎么用正则表达式表示数字,包括整数,小数等正则表达式:大小写字母和数字的正则表达式正则表达式 数字Java 判断以数字开头的字符串的正则表达式怎么写正则表达式“结果要是数字

2025年3月17日 02:40

近期文章

2025-04-14 06:30:04
2025-04-14 05:20:02
本站热文

2025-02-22 17:40:03 浏览:19
2025-02-10 23:40:06 浏览:7
2025-02-14 06:00:02 浏览:7
标签列表

热门搜索