#includestdioh#includestdlibhint maxsize;typedef struct LNode int data; struct LNode next;LNode LinkList;初始化int InitListLinkList L LNode p; p=LNodemallocsizeofLNode; p-next=NULL;建表 int GreatLinkList L
#include<stdio.h> #include<stdlib.h> #define maxsize 100 typedef struct LNode { int data; struct LNode *next; }LNode, *LinkList; //初始化 int InitList(LinkList *L) { (L)=(LNode)malloc(sizeof(LNode)); (*L)->next=NULL; } //建表 int GreatLinkList(LinkList *L) { LNode s; int x; scanf("%d",&x); while(x!=NULL) { s=(LNode)malloc(sizeof(LNode)); s->data=x; s->next=(*L)->next; (*L)->next=s; scanf("%d",&x); } } //表长长度 int LengthLinkList(LinkList L) { LNode *p=L->next; int j=0; while(p!=NULL) { p=p->next; j++; } return j; } //展示数据 void ShowList(LinkList L) { LNode *p=L->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); } //插入 int InsterLinkList(LinkList L,int i,int e) { LNode *p=L,s; int k=0; while(p&&k<i-1) { p=p->next; k=k+1; } if(!p||k!=i-1) { printf("插入位置不合理\n"); return 0; } else { s=(LNode)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; return 1; } } //删除 int DeleteLinkList(LinkList L,int i) { LNode *p=L,*q; int k=0; while(p->next&&k<i-1) { p=p->next; k=k+1; } if(!(p->next)||k!=i-1) { printf("所删结合点位置不合理\n"); return -1; } else { q=p->next; p->next=q->next; free(q); return 1; } } //查找 int LocateLinkList(LinkList L,int a) { LNode *p=L->next; int j=1; while(p&&p->data!=a) { p=p->next; j++; } if(!p) { return -1; } else { return j; } } int main() { LinkList L; int n,e,i; InitList(&L); printf("输入表长度:\n"); scanf("%d",&n); printf("输入表中数据:\n"); for(i=0;i<n;i++) { scanf("%d",&e); InsterLinkList(L,1,e); } printf("表中元素为:\n"); ShowList(L); printf("表长为:%d\n",LengthLinkList(L)); printf("输入插入元素的位置和值:\n"); scanf("%d%d",&i,&e); InsterLinkList(L,i,e); printf("插入元素后表中元素为:\n"); ShowList(L); printf("输入查找元素的值:\n"); scanf("%d",&e); i=LocateLinkList(L,e); if(i==-1) { printf("查找失败\n"); } else { printf("%d是第%d个元素\n",e,i); } printf("输入删除元素的位置:\n"); scanf("%d",&i); DeleteLinkList(L,i); printf("删除元素后表中元素为:\n"); ShowList(L); return 0;
原文地址: http://www.cveoy.top/t/topic/chM7 著作权归作者所有。请勿转载和采集!