Tag: 节点

C trie试图添加撇号

我正在尝试在C中编写一个trie来读取文件并将文件中的所有单词添加到trie中,并且它运行良好,但我不能让它接受撇号: typedef struct node { bool wordBool; struct node* next[27]; // 26 letters and one space for the apostrophe } node; node* base; int numWords = 0; bool load(const char* dictionary) { FILE* dictionaryf = fopen(dictionary, “r”); // the file to read base = malloc(sizeof(node)); node variable; node *currNode = &variable; int n = 0; […]

添加新用户到c程序列表

我只是想编写一个简单的函数来将朋友添加到UserAccount列表中。 所有信息都通过参数提供。 如果用户已经在列表中,我不需要再次添加他,但显示记录表明他已经在列表中。 我写了这段代码。 不确定这是否正确,是否有任何改进代码的建议? 这有用吗? int add_friend(UserAccount* user, char Circle, UserAccount* friend) { struct UserAccountNode *p; p = (struct UserAccountNode *) malloc(sizeof(struct UserAccountNode)); while (p != NULL) if(stricmp(user, p->friend) == 0){ p->next = head; // inserting at the beginning head = p; } else { printf(“%d already exists”, friend) }; }

链接列表无法正常工作

这是一个基本链接列表,添加节点然后打印它们但由于某种原因它无法正常工作。 根据我的测试,它在打印列表后失败,它打印工资,错误地打印数字,然后终止。 #include #include #include typedef struct node_s { char job_title[25]; double hourly_wage; struct node_s *next; } node_t; void print_list(node_t *list); void add_node(node_t **head, char *title, double hwage); int main() { node_t *list; list = NULL; add_node(&list, “Programmer”, 32.35); print_list(list); add_node(&list, “Analyst”, 25.80); print_list(list); add_node(&list, “Technician”, 17.50); print_list(list); add_node(&list, “Clerk”, 12.00); print_list(list); add_node(&list, “Manager”, 53.58); […]

创建节点列表

嘿家伙我被分配来构建一个程序,它将创建一个300个节点的节点列表。 每个节点必须具有1-100的随机数堆栈。 之后我必须打印列表和堆栈以及所有数据的总和。 有任何想法吗? 到目前为止我的代码是 #include #include struct listNode { // <====== char data; struct listNode *nextPtr; }; typedef struct listNode ListNode; typedef ListNode* ListNodePtr; void insert(ListNodePtr *sPtr, char value); char delete(ListNodePtr *sPtr, char value); int isEmpty(ListNodePtr sPtr); void printList(ListNodePtr currentPtr); void instructions(void); int main(int argc, char** argv) { ListNodePtr startPtr = NULL; int choice; […]

发出添加和删除链接列表中的节点的问题

我有一个程序,必须从文本文件中获取输入,使用此输入创建链接列表,然后能够添加,删除,修改和查询链接列表。 我的查询和修改function工作正常。 我的删除function在特定情况下失败,我正在努力使用添加function。 没有来自编译器的错误帮助。 如果有人能指出我正确的方向,将不胜感激。 添加function给了我最大的问题。 经过几个小时的调试和同事的帮助,我最接近添加的东西正在改变 更新:感谢大家的反馈! 我最终在一位同事的帮助下发现了我遇到的主要问题。 显然我传递的是一个值而不是一个引用。 **为添加和删除function做了诀窍。 void add(employee **head, int addEMP_ID, char* addName, int addDept, int addRank, double addSalary) { } void delete(employee **head, int option) { }

在C中添加节点字母

你可以返回addWord部分,它将按字母顺序添加单词吗?我试过但它没有用。我是C编程的新手。实际上,我正在研究它一周但我不能解决问题。 typedef struct NODE { char *str; int count; struct NODE *pNext; } NODE; void addWord(char *word) { NODE *pCounter = NULL; NODE *pLast = NULL; if(pStart == NULL) // pstart is globally defined pStart=NULL; { pStart = createWordCounter(word); return; } /* If the word is in the list, increment its count */ pCounter = […]

将.csv文件读入C LinkedList

我有以下struct : struct NODE { char username[50]; char password[50]; char usertype[50]; struct NODE *next; } *head=NULL; 我想从.csv文件中读取,比如username, password, usertypeforms的username, password, usertype ,使用strtok将每一行标记为标记,并将每个标记放在右边的字段中。 例如,我的文件看起来像这样: johnnydepp, pirate123, user tonystark, iron456, sysop 我继续阅读C LinkedList ,但我无法弄明白。 任何帮助都会非常感激,或者有关如何在C中实现LinkedList任何好的参考。 我的主要问题是将元素放在每个节点中。 我知道如何使用strtok来标记文件中的一行。 这是我到目前为止所做的: void createList() { FILE *data; data = fileopen(“password.csv”, “r”); char parsedLine[50]; while (fgets(parsedLine, 50, data) != NULL) { char […]

用于查找2个字符串之间任意长度的所有共享子串的算法,然后计算字符串2中的出现次数?

我遇到了一个不同寻常的挑战,到目前为止,我无法确定最有效的攻击方法。 给定以下2个字符串作为示例,查找任意长度的2个字符串之间的所有共享子字符串,并计算字符串2中所有这些共享子字符串的出现次数。您的算法还需要能够计算之间的共享子字符串包含最大100MB或更大的字符串的文件。 例: 字符串1:ABCDE512ABC361EG51D 字符串2:ADE5AHDW4131EG1DG5C 给定这2个字符串,该算法将找到以下共享子串:A,C,D,E,5,1,3,G,DE,E5,EG,G5,1D,DE5,1EG 然后从这些共享的子串中,我们可以发现字符串2中每个子串的出现次数。 答:字符串2中出现2次 C:字符串2中出现1次 D:字符串2中出现3次 等等.. 我用来解决这个问题的第一种方法是粗暴地强迫我使用2个嵌套for循环来计算公共共享子串 – 显然效率最低但是这是一种快速而肮脏的方式来了解预期的输出应该使用较小的测试输入和最慢的运行时间,大约2分钟来计算包含ascii字符串,大小为50kb的2个文件之间的所有常见共享子字符串。 将大小增加到1mb会导致这种情况急剧下降,因为计算此事件时必须进行大量的嵌套迭代。 下一个方法是使用树 – 看看我可以用多少内存来优化计算时间。 这种方法要快得多。 使用蛮力方法花费2分钟的两个50kb文件几乎是即时的。 对1mb文件运行速度非常快(秒)但是当我继续测试越来越大的文件大小时,由于树的大小,我很快就开始遇到内存问题。 注意:字符串文件只包含ASCII字符! 编辑: 我正在进一步升级,请看: https://gist.github.com/braydo25/f7a9ce7ce7ad7c5fb11ec511887789bc

我试图按分数对节点进行排序。 我不知道我有什么错误

#include #include #include struct student{ char firstname[20]; char lastname[20]; double grade; char zipcode[10]; struct student *next; }; void display(struct student *first) { while (first != NULL) { printf(“\nFirst name: %s”, first->firstname); printf(“\tLast name: %s”, first->lastname); printf(“\tGrade: %.2f”, first->grade); printf(“\t ZipCode: %s”, first->zipcode); first = first->next; } } /*void add_Record(struct student *first) { char r[20]; struct […]