65,210
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode //三个量
{
int data;
struct LNode *next;
struct LNode *prior;
}LNode,*LinkedList;
LinkedList LinkedListInit() //链表初始化
{
LinkedList L;
L=(LinkedList)malloc(sizeof(LNode));
L->next=NULL;
L->prior=NULL;
return L;
}
LinkedList LinkedListCreat( )
{
LinkedList L,p,s; //p只是一个介质
int x=0;
L=LinkedListInit();
p=L->next;
printf("输入要创建的链表,以-1为结束\n");
fflush(stdin); //清空缓冲区
scanf("%d",&x);
while(x!=-1)
{
s=(LinkedList)malloc(sizeof(LNode));
s->data=x;
s->prior=p->prior; //双链表的插入
p->prior->next=s;
s->next=p;
p->prior=s;
p=p->next;
scanf("%d",&x);
free(s);
}
p=NULL;
return(L);
}
void main()
{
LinkedList L;
L=LinkedListCreat();
}
typedef struct LNode //三个量
{
int data;
struct LNode *next;
struct LNode *prior;
}LNode,*LinkedList;
LinkedList LinkedListInit() //链表初始化
{
LinkedList L;
L=(LinkedList)malloc(sizeof(LNode));
L->data=NULL;
L->next=NULL;
L->prior=NULL;
return L;
}
LinkedList LinkedListCreat( )
{
LinkedList L,p,s; //p只是一个介质
int x=0;
L=LinkedListInit();
p=L; //让p承接最后一个真正的节点,不需要介质
printf("输入要创建的链表,以-1为结束\n");
fflush(stdin); //清空缓冲区
scanf("%d",&x);
while(x!=-1)
{
s=(LinkedList)malloc(sizeof(LNode));
s->data=x;
s->next=p; //双链表的插入
s->prior=NULL;
p->prior=s;
p=p->prior;
scanf("%d",&x);
}
p=NULL;
return(L);
}
view_List_prior(LinkedList L )
{
while(L!=NULL)
{
printf(" %d ",L->data);
L=L->prior;
}
}
void main()
{
LinkedList L;
L=LinkedListCreat();
view_List_prior(L->prior);
}
LinkedList LinkedListCreat( )
{
LinkedList L,p,s; //p只是一个介质
int x=0;
L=LinkedListInit();
p=L; //让p指向链表最后一个节点
printf("输入要创建的链表,以-1为结束\n");
fflush(stdin); //清空缓冲区
scanf("%d",&x);
while(x!=-1)
{
s=(LinkedList)malloc(sizeof(LNode));
s->data=x;
s->prior=p; //让新节点的前驱指针指向原来链表的最后一个节点
p->next=s; //让最后一个节点的后继指针指向新节点s
p=p->next; //让p指向新加的节点。
scanf("%d",&x);
free(s);
}
p=NULL;
return(L);
}
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode //三个量
{
int data;
struct LNode *next;
struct LNode *prior;
}LNode,*LinkedList;
LinkedList LinkedListInit() //链表初始化
{
LinkedList L;
L=(LinkedList)malloc(sizeof(LNode));
L->next=NULL;
L->data=0; // advise to add this line
L->prior=NULL;
return L;
}
LinkedList LinkedListCreat( )
{
LinkedList head,p,s; //p只是一个介质
int x=0;
head=LinkedListInit();
//p=L->next; // that's to say p==NULL. it's not proper to do so
p=head;
printf("输入要创建的链表,以-1为结束\n");
fflush(stdin); //清空缓冲区
//scanf("%d",&x);
while(x!=-1)
{
scanf("%d",&x);
s=(LinkedList)malloc(sizeof(LNode));
s->data=x;
s->next=NULL;
s->prior=p; //双链表的插入
p->next=s;
p=s;
//free(s);
}
p=NULL;
return(head);
}
int main()
{
LinkedList L,temp;
L=LinkedListCreat();
while(L->next!=NULL)
{
printf("%d\n",L->data);
temp=L->next;
free(L);// remember to go over the list to free the memory
L=temp;
}
return 0;
}
typedef struct LNode //三个量
{
int data;
struct LNode *next;
struct LNode *prior;
}LNode,*LinkedList;
LinkedList LinkedListInit() //链表初始化
{
LinkedList L;
L=(LinkedList)malloc(sizeof(LNode));
L->next=NULL;
L->prior=NULL;
return L;
}
LinkedList LinkedListCreat( )
{
LinkedList L,p,s; //p只是一个介质
int x=0;
L=LinkedListInit();
p=L; //让p承接最后一个真正的节点,不需要介质
printf("输入要创建的链表,以-1为结束\n");
fflush(stdin); //清空缓冲区
scanf("%d",&x);
while(x!=-1)
{
s=(LinkedList)malloc(sizeof(LNode));
s->data=x;
s->prior=p; //双链表的插入
p->next=s;
p=p->next;
scanf("%d",&x);
free(s);
}
p=NULL;
return(L);
}
void main()
{
LinkedList L;
L=LinkedListCreat();
}