C语言一个链表拆成两个链表,遇挫了,求解!
发布网友
发布时间:2022-04-19 09:47
我来回答
共2个回答
热心网友
时间:2023-08-23 22:56
#include "stdio.h"
#include <conio.h>
#include <stdlib.h>
struct node /*点链表的数据结构*/
{
char ch;
struct node *next;
struct node *front;
};
int main()
{
struct node *head, *rear; /*head是头指针,指向点链表第一个节点*/
struct node *newnode; /*用于指向新申请的节点*/
struct node *oldnode; /*指向新节点的前一节点*/
char inputch;
int k=0;
while(1==1)
{
inputch=getch();
if(inputch==13)break;
newnode=(struct node*)malloc(sizeof(struct node));
newnode->ch=inputch;
if(k==0)
{
head=newnode;
oldnode=newnode;
head->next = NULL;
head->front = NULL;
}
else
{
oldnode->next=newnode;
newnode->front = oldnode;
}
oldnode=newnode; /*使当前的新节点变成下一次的前一节点*/
k++;
}
oldnode->next = NULL;
rear = oldnode;
newnode=head;
while(newnode!=NULL)
{
printf("%c",newnode->ch);
newnode=newnode->next;
}
printf("\n");
newnode=rear;
while(newnode!=NULL)
{
printf("%c",newnode->ch);
newnode=newnode->front;
}
}
热心网友
时间:2023-08-23 22:57
加一个struct node *backnode;
首节点的backnode指向本身
让新创建的节点的backnode指向前一节点