📄 tu-table.cpp
字号:
#include <stdlib.h>
#include <stdio.h>
struct node /* 图形顶点结构定义 */
{
int vertex; /* 顶点 */
struct node *nextnode; /* 指下一顶点的指针 */
};
typedef struct node *graph; /* 图形的结构重定义 */
struct node head[6]; /* 图形顶点结构数组 */
/*----------建立图形--------*/
void creategraph(int *node,int num)
{
graph newnode; /* 新顶点指针 */
graph ptr;
int from; /* 边线的起点 */
int to; /* 边线的终点 */
int i;
for ( i = 0; i < num; i++ ) /* 读取边线的回路 */
{
from = node[i*2]; /* 边线的起点 */
to = node[i*2+1]; /* 边线的终点 */
/* 申请存储新顶点的内存空间 */
newnode = ( graph ) malloc(sizeof(struct node));
newnode->vertex = to; /* 建立顶点内容 */
newnode->nextnode = NULL; /* 设定指针初值 */
ptr = &(head[from]); /* 顶点位置 */
while ( ptr->nextnode != NULL ) /* 遍历至链表尾 */
ptr = ptr->nextnode; /* 下一个顶点 */
ptr->nextnode = newnode; /* 插入结尾 */
}
}
/*------主程序: 建立图形后,将邻接链表输出------*/
void main()
{
graph ptr;
int node[12][2] = { {1, 2}, {2, 1}, /* 边线数组 */
{1, 3}, {3, 1},
{2, 3}, {3, 2},
{2, 4}, {4, 2},
{3, 5}, {5, 3},
{4, 5}, {5, 4} };
int i;
for ( i = 1; i <= 5; i++ )
{
head[i].vertex = i; /* 设定顶点值 */
head[i].nextnode = NULL; /* 清除图形指针 */
}
creategraph(*node,12); /* 建立图形 */
printf("图形的邻接链表内容:\n");
for ( i = 1; i <= 5; i++ )
{
printf("顶点%d =>",head[i].vertex);/* 顶点值 */
ptr = head[i].nextnode; /* 顶点位置 */
while ( ptr != NULL ) /* 遍历至链表尾 */
{
printf(" %d ",ptr->vertex); /* 输出顶点内容 */
ptr = ptr->nextnode; /* 下一个顶点 */
}
printf("\n"); /* 换行 */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -