C:反向打印链表



尝试反向打印此列表

用户输入10个字符,程序按原顺序输出10个字符,然后按倒序输出。

多亏了你们,我弄清楚了为什么它不能按正常顺序打印的问题,现在我有一些麻烦,让它以相反的顺序打印…

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define strsize 30
typedef struct member
{
    int number;
    char fname[strsize];
    struct member *next;
} RECORD;
RECORD* insert (RECORD *it);
RECORD* print(RECORD *it, int j);
int main (void)
{
    int i;
    double result;
    RECORD *head, *p;
    head=NULL;
    result=10;
    for (i=1; i<=result; i++)
        head=insert (head);  
    print (head, result);
    return 0;
}
RECORD* insert (RECORD *it)
{
    RECORD *cur, *q; 
    int num;
    char junk;
    char first[strsize];
    printf("Enter a character:");
    scanf("%s", &first);
    cur=(RECORD *) malloc(sizeof(RECORD));
    strcpy(cur->fname, first);
    cur->next=NULL; 
    if (it==NULL)
        it=cur;
    else
    {
        q=it;
        while (q->next!=NULL)
            q=q->next;
        q->next=cur;
    }
    return (it);
}
RECORD* print(RECORD *it, int j)
{
    RECORD *cur;
    cur=it;
    int i;
    for(i=1;i<=j;i++)
    {
        printf("%s n", cur->fname);
        cur=cur->next;
        //my solution for printing it backwards..
        void print(node *it)
        {
            if(it!=NULL)
            {
                print(it->next);
                printf("%s-->",it->number);
            }
        }
        return;
    }
}

您有几个"东西"的名称是print

  • 原型:RECORD* print(RECORD *it, int j);
  • 一次呼叫,inside main: print (head, result);
  • a函数定义:RECORD* print(RECORD *it, int j) {
  • 嵌套函数定义:void print(node *it) {

前三个是连贯的,但最后一个是完全错误的。


标准C不允许嵌套函数。
没有定义类型node
你仍然需要处理缩进:)

相关内容

  • 没有找到相关文章