Tag: 列出

在C中实现带有链表的堆栈

我在使用带有struct的链表实现Stack时遇到了麻烦。 程序编译很好,但是当我运行它时,它打印第一个元素,但然后将下一个节点作为NULL读取。 我认为将堆栈传递给push方法可能是一个错误但我不确定并且我没有成功修复它所以我在寻求你的帮助: #include #include struct stackNode{ char data; struct stackNode *nextPtr; }; typedef struct stackNode StackNode; typedef StackNode *StackNodePtr; void convertToPostfix(char infix[], char postfix[]); int isOperator(char c); int precedence(char operator1, char operator2); void push(StackNodePtr *topPtr, char value); char pop(StackNodePtr *topPtr); char stackTop(StackNodePtr topPtr); int isEmpty(StackNodePtr topPtr); void printStack(StackNodePtr topPtr); int main(){ convertToPostfix(NULL, NULL); return […]

单链接列表上的快捷方式

我正在尝试在单个链表上为QUICKSORT编写一个简单的C代码。 程序将获得一个txt文件,其中包含密码和使用此密码的频率。 程序应按顺序对密码进行排序。 有人可以告诉我如何编写函数void qsort_list,因为我不明白如何获得“partiition()”需要的3个参数。 #include #include #include typedef struct list_element{ char passwort[100]; int haufigkeit; struct list_element *next; } list_element; typedef struct list{ list; void init_list(list* mylist) { mylist->first=NULL; mylist->last=NULL; } void insert_front(list_element* le, list* mylist) { // HIER Code einfügen if(mylist->first == NULL){ le->next = mylist-> first; mylist->first=le; mylist->last=le; } else { le->next = […]

在C中删除链表的第一个和最后一个元素

struct person { int age; char name[100]; struct person *next; }; void delfirst(struct person **p)// For deleting the beginning { struct person *tmp,*m; m = (*p); tmp = (*p)->next; free(m); return; } void delend(struct person **p)// For deleting the end { struct person *tmp,*m; tmp=*p; while(tmp->next!=NULL) { tmp=tmp->next; } m->next=tmp; free(tmp); m->next = NULL; return; […]

错误:参数的类型不兼容

我正在用C写一个列表。以下是来源: #include #include struct list { int value; struct list *next; }; typedef struct list ls; void add (ls **head, ls **tail, int val) { ls *new, *tmp1, *tmp2; if (NULL == *head) { new = (ls*)malloc(sizeof(ls)); *head = new; *tail = new; new->value = val; new->next = NULL; return; } else { tmp1 = […]

带有抽象数据类型的C双链表

我需要C中的双链表,但它必须适用于不同的类型。 在C ++中,我们使用模板。 我在哪里可以找到C中的示例,用于带有抽象类型项的双链表。 谢谢

从C中删除链表中的节点

我的问题是从链表中删除一个节点。 我有两个结构: typedef struct inner_list { int count; char word[100]; inner_list*next; } inner_list; typedef struct outer_list { char word [100]; inner_list * head; int count; outer_list * next; } outer_list; 我的问题是从outer_list链表中删除一个节点。 例如,当用户entered aaa进行删除时, delete function should find the node with outer_list->word = aaa and delete this node and reconnect the list again 。 我尝试了下面的代码来做到这一点。 但在找到并删除后,我正在丢失列表。 […]