|
野郎中
新手上路
帖子:9 |
1#
大中
小发表于 2007-10-15 23:05 只看该作者
链表的逆置于输出下面程序是链表的输出与倒置:
(1)下面是主程序,随便起个名字,用.c为扩展名。 #include<stdlib.h> #include<malloc.h> typedef int DataType; #include"lianbiao.h" void main() { SLNode *head,*B; int i,x; ListInitiate(&head); //初始化链表 ListInitiate(&B); if(ListInsert(head,i,i+1)==0) { printf("错误!\n"); return; } printf("以下是原链表的各元素:\n"); //输出原链表 if(shuchu(*head)==0) { printf("错误!\n"); return; } printf("以下是逆置后链表的各元素:\n"); { printf("错误!\n"); return; } { printf("错误!\n"); return; } } (2)下面是头文件,命名为lianbiao.h。 { DataType data; struct Node *next; }SLNode; { if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1); (*head)->next=NULL; } { SLNode *p,*q; int j; p=head; j=-1; while(p->next!=NULL&&j<i-1) { p=p->next; j++; } if(j!=i-1) { printf("插入位置参数错误!"); return 0; } if((q=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1); q->data=x; q->next=p->next; p->next=q; return 1; } { SLNode *p; p=&head; if(p->next==NULL) { printf("表已空,无输出!\n"); return 0; } else { while(p->next!=NULL) { p=p->next; printf("%d ",p->data); } printf("\n"); return 1; } } { SLNode *p; DataType x; int i; p=&A; if(p->next==NULL) { printf("表已空,不能倒置!\n"); return 0; } else { while(p->next!=NULL) { p=p->next; ListInsert(B,0,p->data); } return 1; } } void Destroy(SLNode **head) //撤销链表 { SLNode *p, *p1; while(p != NULL) { p1 = p; p = p->next; free(p1); } *head = NULL; } 搜索更多相关主题的帖子: 链表 FONT style WBR |
|
TOP |









