|
本帖最后由 猪李振 于 2009-10-14 13:32 编辑
头插法建立单链表
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define Status int
typedef int ElemType;/*此处利用#define或typedef 将ElemType先作定义*/
typedef struct node
{ElemType data;
struct node *next;
} *SLink;
SLink InitList()
{SLink head;
head=(SLink)malloc(sizeof(node));
head->next=NULL;
return head;}
void printlist(SLink L) //这是一个输出表元的函数
{SLink p;
p=L->next;
printf(" → 头结点");
while(p!=NULL)
{printf("%d",p->data);
p=p->next;}
}
SLink CreateListf(SLink &L ,int n ) //用头插法建表
{L=InitList()
SLink p;
for(int i=1;i<=n;i++)
{ p=(SLink)malloc(sizeof(node));
scanf(%d",&(p->data));
p->next=L->next;
L->next=p;
}
}
int Locate(SLink L,ELemType x)
{int i=1;
SLink p=L->next;
while(p!=NULL&&p->data!=x)
{p=p->next;
i++;
}
if(p==NULL)
printf("NO");
else
printf("%d",i);
return(i);
}
void main()
{SLink y;
int n,x;
printf("请输入N的值,它代表y中元素个数:");
scanf("%d",&n);
printf("\n");
CreateListf(y,n);
printf("\n");
printf("这是链表y中的元素:");
printlist(y);
printf("\n\n\n");
scanf("%d",&x);
Locate(y,x);
printf("n\n\n");
} |
|