1、试写一算法在带头结点的单链表结构上实现线性表操作Locate(L,x)

2、试写一算法在带头结点的单链表结构上实现线性表操作Length(L)

#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
#define OVERFLOW -1
#define TRUE 1
typedef int Status; struct LNode
{
int data;
LNode *next;
};
typedef LNode *LinkList; void InitList(LinkList &L)
{
L=(LinkList)malloc(sizeof(LNode));
if(!L)
exit(OVERFLOW);
L->next=NULL;
} int ListLength(LinkList L)
{
int i=0;
LinkList p=L->next;
while(p)
{
i++;
p=p->next;
}
return i;
} int LocateElem(LinkList L,int e)
{
int i=0;
LinkList p=L->next;
while(p)
{
i++;
if(p->data==e)
return i;
p=p->next;
}
return 0;
} void CreateList(LinkList &L,int n)
{
int i;
LinkList p,q;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
q=L;
printf("Please input %d numbers:\n",n);
for(i=1; i<=n; i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
q->next=p;
q=q->next;
}
p->next=NULL;
} void judge(LinkList L,int x)
{
int flag;
flag=LocateElem(L,x);
if(flag)
printf("elem %d is in the %d place of L",x,flag);
else
printf("elem %d is not in L",x);
} void PrintList(LinkList L)
{
LinkList p;
p=L->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n"); } int main()
{
LinkList L;
int len,x;
CreateList(L,8);
printf("LinkList L:");
PrintList(L);
len=ListLength(L);
printf("The LinkList L'length is:%d\n",len);
printf("input number x:");
scanf("%d",&x);
judge(L,x);
return 0; }

最新文章

  1. (lintcode全部题目解答之)九章算法之算法班题目全解(附容易犯的错误)
  2. TypeScript中的枚举类型
  3. Nginx--&gt;基础--&gt;排错--&gt;nginx错误总结
  4. iOS学习笔记——iOS高级控件
  5. GY编辑平台产品总结
  6. Leetcode Find K Pairs with smallest sums
  7. core&mdash;线程与IO
  8. lucene和egg项目的异同点
  9. 合并傻子//区间dp
  10. OpenNebula Restfull 接口请求示例
  11. 如何生成Dump文件
  12. 在Fragment中使用BaiduMap SDK
  13. ASP.NET过滤器的应用
  14. 关于JavaScript中连等赋值那点事
  15. BZOJ 4031: [HEOI2015]小Z的房间 [矩阵树定理 行列式取模]
  16. 历届试题 大臣的旅费 树形DP
  17. LeetCode --&gt; 771. Jewels and Stones
  18. ios开发之xcode环境介绍
  19. [MySQL] mysql 的行级显式锁定和悲观锁
  20. checkbox的使用总结,判断是否选中

热门文章

  1. 备份一篇SVN的文章, 从搭建到主备库
  2. iview框架select默认选择一个option的值
  3. 8. Django系列之上传文件与下载-djang为服务端,requests为客户端
  4. 4 云计算系列之Openstack简介与keystone安装
  5. java 上传附件的一点积累
  6. 怎么使用ABBYY中的Bates编号
  7. HQS——Half Quadratic Splitting半二次方分裂
  8. Hessian资料
  9. linux 安装lnmp
  10. 解决sourcesafe admin用户自动登录并且不用密码的问题