代码如下:
#include "stdio.h"
#include
typedef struct node { int data; struct node *next; } listnode;
listnode* INITLIST() { listnode *hd=(listnode *)malloc(sizeof(listnode));
hd->next=NULL;
return hd; }
void CREALIST(listnode *hd)
{ int dt;
scanf("%d",&dt);
while(dt!=-1) {
listnode *p=(listnode *)malloc(sizeof(listnode));
p->data=dt;
p->next=hd->next;
hd->next=p;
scanf("%d",&dt);
}
}
void PRINTLIST(listnode *hd) { l
istnode *p=hd->next;
while(p!=NULL) {
printf("%d ",p->data);
p=p->next; } }
void FREELIST(listnode *hd) {
while(hd->next!=NULL)
{
listnode *p=hd->next;
hd->next=p->next;
free(p); } }
void main() { listnode *head=NULL; head=INITLIST(); CREALIST(head); PRINTLIST(head); FREELIST(head); free(head); }
#include "stdio.h"
#include
typedef struct node { int data; struct node *next; } listnode;
listnode* INITLIST() { listnode *hd=(listnode *)malloc(sizeof(listnode));
hd->next=NULL;
return hd; }
void CREALIST(listnode *hd)
{ int dt;
scanf("%d",&dt);
while(dt!=-1) {
listnode *p=(listnode *)malloc(sizeof(listnode));
p->data=dt;
p->next=hd->next;
hd->next=p;
scanf("%d",&dt);
}
}
void PRINTLIST(listnode *hd) { l
istnode *p=hd->next;
while(p!=NULL) {
printf("%d ",p->data);
p=p->next; } }
void FREELIST(listnode *hd) {
while(hd->next!=NULL)
{
listnode *p=hd->next;
hd->next=p->next;
free(p); } }
void main() { listnode *head=NULL; head=INITLIST(); CREALIST(head); PRINTLIST(head); FREELIST(head); free(head); }
这个程序基本的链表操作都有了 望楼主采纳
题目为:编一算法,建立一个带头结点的单链表,用前(头)插法实现。 PS这个程序是以前做的,看起来复杂,其实是太多的判断和提示内容而已,你看看主