数据结构之链表

来源:互联网 发布:齐天大肾余潇洒知乎 编辑:程序博客网 时间:2024/06/03 17:59


/*作者: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;}


1 0
原创粉丝点击