问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言动态链表,改写程序,学生的人数由用户输入获得,使用链表实现。用malloc和free动态申请和释放内存

发布网友 发布时间:2022-04-24 17:19

我来回答

1个回答

热心网友 时间:2023-10-25 13:42

以前做过的类似的一个 你拿去看看改改

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFSIZE 1024
#define WORDSIZE 32
#define DESTSIZE 512
#define NR 26
struct node_st {
struct node_st *arr[NR];
char *str;
};
static int pos_hash(char ch)
{
return ch - 'a';
}
static int read_file(FILE *fp, char *word, char *dest)
{
char buf[BUFSIZE] = {};
if (fgets(buf, BUFSIZE, fp) == NULL)
return -1;
buf[strlen(buf)-1] = 0;
sscanf(buf, "%s %s", word, dest);
return 0;
}
static void tree_insert(struct node_st **root, const char *word, const char *dest)
{
struct node_st *new;
int i;
if (*root == NULL) {
new = malloc(sizeof(*new));
//if error
for (i = 0; i < NR; i++)
(new->arr)[i] = NULL;
new->str = NULL;
*root = new;
}
if (*word == '\0') {
(*root)->str = strp(dest);
return;
}
tree_insert(&((*root)->arr)[pos_hash(*word)], word+1, dest);
}
static char *tree_search(struct node_st *root, char *word)
{
if (root == NULL)
return NULL;
if (*word == '\0')
return root->str;
tree_search((root->arr)[pos_hash(*word)], word+1);
}
int main(int argc, char **argv)
{
FILE *fp;
struct node_st *root = NULL;
char word[WORDSIZE] = {};
char dest[DESTSIZE] = {};
char *ret;
if (argc < 3)
return 1;
fp = fopen(argv[1], "r");
//if error
while (1) {
if (read_file(fp, word, dest) < 0)
break;
tree_insert(&root, word, dest);

memset(word, '\0', WORDSIZE);
memset(dest, '\0', DESTSIZE);
}
#if 1
if ((ret = tree_search(root, argv[2])) == NULL)
printf("the word is wrong\n");
else
printf("%s: %s\n", argv[2], ret);
#endif
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 求一个CRC校验C++源代码。题目:发送数据为1101011011,生成的多项式为P(X)=X4+X+1(X4为X的4次方), 用C语言编程实现学生基本信息管理系统 微软雅黑如何用自己的程序加载上? 如何产生依赖文件 Linux C programming C语言-数据结构-删除句子中重复的单词 C语言题目任意输入一个文件,统计其中单词出现的次数,并按序排序,给出前20个单词的列表及其出现次数。 Verilog通过文件去定义管脚? 如何实现网页表格中一行多出的文字变成省略号或者隐藏 c语言字符串匹配问题 c语言翁凯期末考试字数统计编程答案 数据类型的级别在C语言中有什么实质性的用处? 100悬赏翻译 100悬赏翻译! 本文标题的作用 本文标题的作用 详写泥墙根一带的无线乐趣,特别是详写拔何首乌,其作用是什么? 详写泥墙根一带的无线乐趣,特别是详写拔何首乌,其作用是什么? 《从百草园到三味书屋》文中对描写拔何首乌的根的描写,表现了作者怎样的心理?这样写有什么作用》 《从百草园到三味书屋》文中对描写拔何首乌的根的描写,表现了作者怎样的心理?这样写有什么作用》 从百草园到三味书屋描写拔何首乌根的作用是什么 作业啊 在access中的”OLE对象”字段存储形式为二进制? c语言怎样才能输出中文???(最简单的方法) 请问网页制作中点击网站里的大字能让字体变大,点击小字能让字体变小怎么做........ VHDL语言里的For循环 怎样在阿里巴巴上怎样申请知识产权 阿里巴巴产品被人投诉知识产权侵权怎么办? 按投资项目之间的相互关系,投资可以分为哪三类? 阿里巴巴知识产权认证和淘宝认证不是同一个人怎么办? 雷士照明灯泡,创始人如何处理与投资者的关系? 阿里巴巴版权。知识产权审核未通过? 如何理解“投资者(控股股东)及其一致行动人”? 阿里代运营知识产权是什么意思 关于上市公司的投资者关系管理的问题 阿里巴巴知识产权验证很慢,但是我还需要投诉怎么办? 融资完成之后,创业者该如何处理自己与投资人的关系? 阿里巴巴知识产权【营业执照】上传入口在哪里可以找到? 淘宝知识产权投诉平台,新的美术著作权提交审核不通过,原因:需提交著作权证明材料,公开发表证明 什么是指社会组织与投资者之间的各种关系的总称 上海公司年检现在变成了网上公示了,阿里巴巴知识产权保护平台提示未通过怎么办 法人代表和投资人之间是什么关系?工作职责是什么?