/*
作者:wtt561111
日期:2015/7/19
编译环境:vc6.0 Windows 64b
*/
#include "stdio.h"
#include "stdlib.h"
typedef struct Node * PNode;
struct Node {
int info;
PNode link;
};
typedef struct Node * LinkList;
/*
创建一个空的链表
*/
LinkList createNullList(void){
LinkList llist=(LinkList)malloc(sizeof (struct Node));
if(llist==NULL){
printf("out of space\n");
return NULL;
}
llist->link=NULL;
return llist;
}
/***************************************************************/
/*
判断链表是否为空,为空返回1,否则返回0;
*/
int isNullList_link(LinkList llink){
if(llink->link==NULL){
return 1;
}
return 0;
}
/***************************************************************/
/*
返回数据为x的节点
*/
PNode locate_link(LinkList llink,int x){//之前把逗号写成中文的,结果不识别int,导致后续错误
PNode p;
if(llink==NULL)return NULL;
p=llink->link;
while(p != NULL && p->info !=x)p=p->link;
return p;
}
/***************************************************************/
/*
在p所指的节点前插入x,成功返回1,否则返回0
*/
int insertPost_link(LinkList llist,PNode p,int x){//之前把逗号写成中文的,结果不识别int,导致后续错误
PNode q=(PNode)malloc(sizeof(struct Node));
if(q==NULL){
printf("out of space");
return 0;
}else{
q->info=x;q->link=p->link;p->link=q;return 1;
}
}
/***************************************************************/
/*
删除值域为x的节点,成功返回1,否则返回0
*/
int deleteV_link(LinkList llist,int x){//之前把逗号写成中文的,结果不识别int,导致后续错误
PNode p,q;
p=llist;
if(p==NULL)
return 0;
while(p->link != NULL && p->link->info != x)
p=p->link;
if(p->link ==NULL){
printf("not exist!\n");
return 0;
}else{
q=p->link;
p->link=q->link;
free(q);
return 1;
}
}
/***************************************************************/
/**********************************主函数***********************/
int main(){
LinkList llist_get=createNullList();
insertPost_link(llist_get,llist_get,222);
insertPost_link(llist_get,llist_get,333);
deleteV_link(llist_get,333);
printf("%d",llist_get->link->info);
// printf("%d\n",llist_get->link->info);
// printf("%d\n",llist_get->link->link->info);
return 0;
}