首页 > 代码库 > 数据结构------线性表的链式表示与实现
数据结构------线性表的链式表示与实现
不多说直接上代码:
#include"stdafx.h" #include <stdio.h> #include <stdlib.h> /****************************************************************************** /* 数据类型和常量定义 /******************************************************************************/ #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; //获取元素 Status GetElem(LinkList L,int i, ElemType &e) { int j = 0; LinkList p = NULL; p = L ->next; while(p && j < i) { ++j; p = p ->next; } if (!p || j > i) return ERROR; e = p ->data; return OK; } //构造线性表 void CreateList(LinkList &L,int n) { printf("input %d intergers",n); LinkList p = NULL; L = new LNode; L ->next = NULL; for (int i = n; i >0 ;--i) { p = new LNode; scanf("%d",&p ->data); p->next = L->next; L ->next = p; } } //在线性表中插入元素 Status ListInsert(LinkList &L,int i,ElemType e) { //在带头结点的单链线性表L中第i个位置之前插入元素e LinkList p = NULL; LinkList s = NULL; p = L; int j = 0; while (p && j < i - 1) { p = p ->next; ++j; } if (!p || j > i - 1) { return ERROR; } s = new LNode; s -> data =http://www.mamicode.com/ e; s -> next = p->next; p -> next = s; //delete(p); //L与P同根连枝 return OK; } //打印线性表 void PrintList(LinkList L) { LinkList p = L->next; while(p) { printf("%d ",p->data); p = p ->next; } } void main() { LinkList L=NULL; ElemType e; CreateList(L, 2); ListInsert(L,1,5); PrintList(L); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。