数据结构作业

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:43:37
先用头插法或尾插法建立一个空链表,然后进行插入操作
输入:数据 插入位置
输出:原始数据 插入之后的数据
用c c++ java都行

这是我自己根据清华大学出版社出版的《数据结构(C语言版)》课本线性链表那章里面一些算法写的一个关于线性链表的一个头文件,自我感觉很好用。。而已一直在用。。取名LinkList.h。。注释特详细。。肯定能对你有帮助。。代码如下:
//以下代码由Sylar编写
#include "stdlib.h"
#include "stdio.h"

#define ElemType int //以int为例
#define ScanfType "%d" //以int为例
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int Status;

typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;

Status GetElem_L(LinkList L,int i,ElemType *pe){ //算法2.8,P29,时间复杂度O(n)
//L为带头结点的单链表的头指针
//当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR
LinkList p=L->next;int j=1; //初始化,p指向第一个结点,j为计数器
while(p&&j<i){ //顺指针向后查找,直到p指第i个元素或p为空
p=p->next;++j;
}
if(!p||j>i) return ERROR; //第i个元素不存在
*pe=p->data;
return OK;
}//GetElem_L

Status ListInsert_L(LinkList *p