读书人

C语言链表有关问题

发布时间: 2012-03-26 15:46:56 作者: rapoo

C语言链表问题
# include <stdio.h>
# define N 26
typedef struct letter
{
char ch;
struct letter *link;
};
mian()
{
struct letter _letter[N],*head,*p;
int i,j;
head=(struct letter *)mallo(sizeof(struct letter));
head->link=NULL;
for(i=0;i<N;i++)
{
_letter[i].ch=getchar();
p->ch=_letter[i].ch;
p->link=head->link;
p->link=p;
}
for(j=0;j<N;j++)
putchar(_letter[j].ch);
}
请问下高手们这个小程序哪有错误啊?


[解决办法]
貌似主函数的的关键字打错啦吧——“mian()“!应该是main()吧!
[解决办法]
很多错误
#include<stdio.h>
#include<stdlib.h>

#define N 26
typedef struct letter
{
char ch;
struct letter *link;
};
main()
{
struct letter _letter[N],*head,*p;
int i,j;
head=(struct letter *)malloc(sizeof(struct letter));
head->link=NULL;
for(i=0;i<N;i++)
{
_letter[i].ch=getchar();
_letter[i].link = head->link;
head->link = &_letter[i];
}
for(j=0;j<N;j++)
putchar(_letter[j].ch);
}

[解决办法]
首先作为编程者,定义变量最好不要以下划线作为变量名的开头,为了是防止与系统定义的变量混淆。
typedef struct letter
{
char ch;
struct letter *link;
};
你的结构体没有别名,那么使用typedef 也是多余的。
for(i=0;i<N;i++)
{
_letter[i].ch=getchar();
p->ch=_letter[i].ch;
p->link=head->link;/* head ->link = p; p = p ->link;p = (struct letter *)malloc(sizeof(struct letter));也要分配空间的。*/p->link=p;
}
你定义的头节点,但是连接的时候却不是这样的。
[解决办法]
1、链表操作自己测试的时候没有必要设置N为26,太大了,每次测试都要敲26个字母太麻烦
2、按照lz使用struct letter的方式来说,没有必要使用typedef。如果要使用typedef,应该这样:
struct letter
{
char ch;
struct letter *link;
};
typedef struct letter letter;
然后就可以使用letter作为struct letter这个类型了。
3、lz的意思是要设置一个头结点吧?如果lz要设置头结点,就尽量不要移动和操作头结点,否则指针操作会很乱。建立一个链表很简单,大致的步骤是分配空间,对空间中的数据域赋值,然后将这个申请的空间连入链表。具体怎么改,还是lz自己改对自己提升更快。
[解决办法]

C/C++ code
#include<stdio.h>#include<stdlib.h>#define N 23typedef struct letter{    char ch;    struct letter *link;};main(){    struct letter _letter[N],*head,*p;    int i,j;    head=(struct letter *)malloc(sizeof(struct letter));    head->link=NULL;    for(i=0;i<N;i++)    {        _letter[i].ch=getchar();        _letter[i].link = head->link;        head->link = &_letter[i];        fflush(stdin);    }    for(j=0;j<N;j++)        putchar(_letter[j].ch);    printf("\n");} 

读书人网 >C语言

热点推荐