[英]C: Printing linked list backwards
試圖向后打印此列表
用戶輸入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);
main
內部: print (head, result);
RECORD* print(RECORD *it, int j) {
void print(node *it) {
前三個是連貫的,但最后一個是完全錯誤的。
也
標准C不允許嵌套函數。
未定義類型node
。
你仍然需要處理你的縮進:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.