繁体   English   中英

Char Doubly-linked list

[英]Char Doubly-linked list

我为双向链表创建了一个结构和函数。 它可以完美地用于整数,但现在我必须将其转换为使用字符。 在字符方面我总是遇到问题,当我输入一个字符时,我会得到一个恒定的循环。

到目前为止,我有:

 struct node
{
      struct node *previous;
      char data;
      struct node *next;
}*head, *last; 

 void begin(char value)
 {
     struct node *temp;
 char *var=(char *)malloc(sizeof(char)*100);
 var->data=value;
 if(head==NULL)
 {
     head=var;
     head->previous=NULL;
     head->next=NULL;
     last=head;
 }
 else
 {
     temp=var;
     temp->previous=NULL;
     temp->next=head;
     head->previous=temp;
     head=temp;
 }
} 

我使用了我以前的推/弹功能中的一些例子,这些例子使用了字符,但我不确定我做错了什么。

编辑:忘记放置错误> null.c:14:错误:请求成员`data'在某个结构或联合中null.c:17:警告:从不兼容的指针类型赋值

char *var=(char *)malloc(sizeof(char)*100);

这应该是,

struct node *var= malloc( sizeof( struct node ) );

这是正确的...... var的类型不是'struct node'所以你不能做var-> data。

只是一个小问题:您是否正在尝试制作单个字符数据的列表,或者想要创建字符串列表(每个元素中有多个字符)?

我问'因为“malloc(sizeof(char)* 100);” 给我的印象是你试图保存一个长度为100字节的字符串,但是,该函数只接收一个字符。 ( - :

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM