用C把字符a,b,c…z26个字母放进链表中,并且打印输出字符?该怎么处理
用C把字符a,b,c……z26个字母放进链表中,并且打印输出字符?
这是一道面试:用C把字符a,b,c……z26个字母放进链表中,并且打印输出字符?
------解决方案--------------------
跟普通链表一样的实现。
建立---> 打印。
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
#define N 26
typedef struct STRUCT {
char value;
struct STRUCT *next;
}TS;
int main()
{
char a[N];
int i;
TS *head,*p;
TS *CreateLink(char *,int);
for (int j=0;j <26;j++)
{
a[j]= 'a '+j;
}
head=CreateLink(a,N);
for(p=head;p;p=p-> next)
printf( "%-2c\n ",p-> value);
putchar( '\n ');
getchar();
return 0;
}
TS *CreateLink(char *a,int n)
{
int i;
TS *h,*p;
h=NULL;
for(i=n;i> 0;i--) {
p=(TS *)malloc(sizeof(TS));
p-> value=a[i-1];
p-> next=h;
h=p;
}
return h;
}
------解决方案--------------------
1.可以用单链表法
2.循环连表法
这是一道面试:用C把字符a,b,c……z26个字母放进链表中,并且打印输出字符?
------解决方案--------------------
跟普通链表一样的实现。
建立---> 打印。
------解决方案--------------------
#include <stdio.h>
#include <stdlib.h>
#define N 26
typedef struct STRUCT {
char value;
struct STRUCT *next;
}TS;
int main()
{
char a[N];
int i;
TS *head,*p;
TS *CreateLink(char *,int);
for (int j=0;j <26;j++)
{
a[j]= 'a '+j;
}
head=CreateLink(a,N);
for(p=head;p;p=p-> next)
printf( "%-2c\n ",p-> value);
putchar( '\n ');
getchar();
return 0;
}
TS *CreateLink(char *a,int n)
{
int i;
TS *h,*p;
h=NULL;
for(i=n;i> 0;i--) {
p=(TS *)malloc(sizeof(TS));
p-> value=a[i-1];
p-> next=h;
h=p;
}
return h;
}
------解决方案--------------------
1.可以用单链表法
2.循环连表法