⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数据结构一单链表实现.txt

📁 数据结构课堂实验 集中了数据结构,线性表,连表,栈,队列,二叉树,图,排序算法,查找算法的实现
💻 TXT
字号:
#include <stdio.h>
#include <malloc.h>
#define  ERROR  0
#define  OVERFLOW  -2
#define  TRUE  1
#define  OK  1
#define  NULL 0
#define  FALSE  0
typedef  int  Status;
typedef int ElemType;
typedef struct Lnode
{ ElemType data;
  struct Lnode *next;
  }*LinkList;

Status InitList_l(LinkList &L)  /*初始化操作函数定义*/
{  L=(LinkList)malloc(sizeof(struct Lnode));
   if(!L) return(OVERFLOW);
   L->next=NULL;
  return OK;
 }

Status ListInsert_l(LinkList &L,int i,ElemType e) /*插入操作函数定义*/
{LinkList p,s;
 int j;
 p=L;j=0;
 while(p&&j<i-1) { p=p->next;j++;}
 if (!p||j>i-1) return ERROR;
 s=(LinkList)malloc(sizeof(struct Lnode));
 s->data=e;
 s->next=p->next;
 p->next=s;
 return OK;
 }

void ListOutput_l(LinkList L) /*输出操作函数定义*/
 {LinkList p;
  p=L->next;
  while(p)
   { printf("%6d",p->data); p=p->next;}
  printf("\n");
  }


Status ListDelete_l(LinkList &L,int i,ElemType &e)/*单链表删除操作*/
{LinkList p,q;
int j;
p=L;j=0;
while(p->next && j<i-1)
{p=p->next;++j;}
if (!(p->next) || j>i-1) return ERROR;
q=p->next; p->next=q->next;
e=q->data;free(q);
return OK;
}

Status GetElem_l(LinkList L,int i,ElemType &e)/*单链表取元素操作*/
{LinkList p;
int j;
p=L->next;j=1;
while(p && j<i)
{p=p->next; ++j;}
if (!p || j>i) return ERROR;
e=p->data;
return OK;
}

Status ListEmpty_l(LinkList L)
{if (L->next) return TRUE;
else return FALSE;
}

main()
  {  int i;
  ElemType e;
    LinkList La;
    InitList_l(La);
	for (i=0;i<5;i++)  ListInsert_l(La,i+1,3*i);
	ListOutput_l(La);
	ListInsert_l(La,1,999);  ListOutput_l(La);
	ListInsert_l(La,4,888);  ListOutput_l(La);
	GetElem_l(La,5,e);
	printf("At 5th is elem: %d\n",e);
	ListDelete_l(La,5,e);
	GetElem_l(La,5,e);
	printf("At 5th is elem: %d\n",e);
       }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -