您现在的位置是:主页 > news > 手机下载app安装/江西短视频seo搜索报价

手机下载app安装/江西短视频seo搜索报价

admin2025/4/27 23:33:09news

简介手机下载app安装,江西短视频seo搜索报价,济南论坛网站建设,wordpress 插件复制十字链表—— 头文件利用结构体声明元素节点利用结构体声明矩阵节点构造初始化十字链表矩阵的函数构造展示十字链表的函数—— 主函数—— 头文件 #include <stdio.h> #include <stdlib.h>利用结构体声明元素节点 // 元素节点 typedef struct OLNode{int i, j, …

手机下载app安装,江西短视频seo搜索报价,济南论坛网站建设,wordpress 插件复制十字链表—— 头文件利用结构体声明元素节点利用结构体声明矩阵节点构造初始化十字链表矩阵的函数构造展示十字链表的函数—— 主函数—— 头文件 #include <stdio.h> #include <stdlib.h>利用结构体声明元素节点 // 元素节点 typedef struct OLNode{int i, j, …

十字链表

  • —— 头文件
  • 利用结构体声明元素节点
  • 利用结构体声明矩阵节点
  • 构造初始化十字链表矩阵的函数
  • 构造展示十字链表的函数
  • —— 主函数

—— 头文件

#include <stdio.h>
#include <stdlib.h>

利用结构体声明元素节点

// 元素节点 
typedef struct OLNode{int i, j, e;  // 矩阵三元组 i代表行,j代表列,e代表当前位置的数据struct OLNode *right, *down;  // 指针域 右指针 下指针
} OLNode, *OLink;

利用结构体声明矩阵节点

// 矩阵节点 
typedef struct{OLink *rhead, *chead;  // 行和列链表头指针int mu, nu, tu;  // 矩阵的行数,列数和非零元的个数
} CrossList;

构造初始化十字链表矩阵的函数

// 初始化十字链表矩阵 
CrossList CreateMatrix_OL(CrossList M){int i, j, e;  // i代表行,j代表列,e代表元素值 OLNode *p, *q;int m, n, t;printf("输入矩阵的行数、列数和非0元素个数:");scanf("%d%d%d", &m, &n, &t);  // 默认以空格分开 M.mu = m, M.nu = n, M.tu = t;M.rhead = (OLink*)malloc((m+1)*sizeof(OLink));  // 行链表头指针 M.chead = (OLink*)malloc((n+1)*sizeof(OLink));  // 列链表头指针if (!(M.rhead) || !(M.chead)){printf("初始化矩阵失败");exit(0);}for (i = 1; i <= m; i++){M.rhead[i] = NULL;  // 将m行链表的头指针均指向 NULL }for (j = 1; j <= n; j++){M.chead[j] = NULL;  // 将n列链表的头指针均指向 NULL }for (scanf("%d%d%d", &i, &j, &e); 0 != i; scanf("%d%d%d", &i, &j, &e)){  p = (OLNode*)malloc(sizeof(OLNode)); if(!p){printf("初始化三元组失败");exit(0);}p->i = i, p->j = j, p->e = e;// 链接到行的指定位置if (NULL == M.rhead[i] || M.rhead[i]->j > j){p->right = M.rhead[i];M.rhead[i] = p;}else{for (q = M.rhead[i]; (q->right) && q->right->j < j; q = q->right);p->right = q->right;q->right = p;}//链接到列的指定位置if (NULL == M.chead[j] || M.chead[j]->i > i){  // 2 2 3/3 2 5 p->down = M.chead[j];M.chead[j] = p;}else{  // M.chead[j]->i < i for(q = M.chead[j]; (q->down)&&(q->down->i) < i; q = q->down);p->down = q->down;q->down = p;}}return M;
}

构造展示十字链表的函数

// 展示此矩阵 
void display(CrossList M){for(int i = 1; i <= M.nu; i++){  // 列数遍历输出元素,列靠前优先输出 if (NULL != M.chead[i]){OLink p = M.chead[i];while (NULL != p){printf("%d\t%d\t%d\n", p->i, p->j, p->e);p = p->down;}}}
}

—— 主函数

// 主函数 
int main(){CrossList M;M.rhead = NULL;M.chead = NULL;M = CreateMatrix_OL(M);printf("输出矩阵M:\n");display(M);return 0;
}