程序设计线性表c语言实现实现游戏角色属性分析

线性表 - 公式化描述实现线性表
/********************************************************************
purpose: 公式化描述实现线性表
xianyun1230
*********************************************************************/
class List
List(int MaxListSize = 10);
bool empty() const { return _length == 0;}
int length() const { return _}
int search(const T &x)
bool del(int k,T &val);
bool insert(int k, const T& x);
void show();
T operator [](int i){return element[i];}
List::List(int MaxListSize)
MaxSize = MaxListS
_length = 0;
element = new T[MaxSize];
List::~List()
int List::search(const T &x) const
for (int i = 0; i < _length && element[i] != ++i)
if (i != _length)
return i-1;
return -1;
bool List::del(int k, T &val)
if (k = _length)
val = element[n];
while(n < _length - 1)
element[n] = element[n+1];
bool List::insert(int k, const T& x)
_length || _length == MaxSize)
int n = _length - 1;
while (k <= n)
element[n + 1] = element[n];
element[k] =
void List::show()
cout <<"共" <<_length <<"项:" <<
for (int i=0; i < _ ++i)
cout <<element[i] <<
#include "List.h"
int main()
List link(12);
link.insert(0,21);
link.insert(0,12);
link.insert(2,34);
link.insert(1,12);
link.insert(5,13);
//没有第五项,不会插入
link.show();
link.del(2,a);
link.show();
std::cout <<a;
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'君,已阅读到文档的结尾了呢~~
312500实验一
线性表基本操作的编程实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
312500实验一
线性表基本操作的编程实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口导读:printf(&请输入线性表长度:&);,printf(&请输入线性表各元素的值&);,#include&stdio.h&#include&stdlib.h&#defineLISTSIZE8#defineLISTINCREMENT2typedefstruct{int*}Sqli
#include&stdio.h&
#include&stdlib.h&
#define LISTSIZE 8
#define LISTINCREMENT
typedef struct
void Listset(Sqlist&L)
L.elem=(int *)malloc(LISTSIZE*sizeof(int));
if(!L.elem)
L.listsize=LISTSIZE;
printf(&请输入线性表长度:&);
scanf(&%d&,&L.length);
printf(&请输入线性表各元素的值&);
for(int i=0;i&=L.length-1;i++)
scanf(&%d&,&L.elem[i]);
int ListInsert(Sqlist &L,int i,int e)
int *p=NULL,*q=NULL;
if(i&1||i&L.length+1)
if(L.length&+L.listsize)
newbase=(int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));
if(!newbase)
L.listsize+=LISTINCREMENT;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p&=q;--p)
*(p+1)=*p;
int ListDelete(Sqlist &L,int i,int &e)
int *p=NULL,*q=NULL;
if(i&1||i&L.length)
p=&(L.elem[i-1]);
q=L.elem+L.length-1;
for(++p;p&=q;++p)
*(p-1)=*p;
void main()
Listset(L);
int a,b,c;
for(int i=0;i&=L.length-1;i++)
printf(&%d
&,L.elem[i]);
printf(&\n&);
ListInsert(L, 4, 3);
for(int j=0;j&=L.length-1;j++)
printf(&%d
&,L.elem[j]);
printf(&\n&);
ListInsert(L, 6, 21);
for(int k=0;k&=L.length-1;k++)
printf(&%d
&,L.elem[k]);
printf(&\n&);
ListInsert(L, 2, 15);
for(int o=0;o&=L.length-1;o++)
printf(&%d
&,L.elem[o]);
printf(&\n&);
ListDelete(L, 5 ,a);
for(int a1=0;a1&=L.length-1;a1++)
printf(&%d
&,L.elem[a1]);
printf(&\n&);
ListDelete(L, 3,b);
for(int a2=0;a2&=L.length-1;a2++)
printf(&%d
&,L.elem[a2]);
printf(&\n&);
ListDelete(L, 12 ,c);
for(int a3=0;a3&=L.length-1;a3++)
printf(&%d
&,L.elem[a3]);
printf(&\n&);
包含总结汇报、旅游景点、资格考试、专业文献、文档下载、教学研究、应用文书、办公文档以及数据结构程序设计 数序线性表实现插入删除数据.doc等内容。
相关内容搜索当前位置 &
线性表的链式表示与实现
本课主题: 线性表的链式表示与实现
教学目的: 把握线性链表、单链表、静态链表的概念、表示及实现方法
教学重点: 线性链表之单链表的表示及实现方法。
教学难点: 线性链表的概念。
授课内容:
一、复习顺序表的定义。
二、线性链表的概念:
以链式结构存储的线性表称之为线性链表。
特点是该线性表中的数据元素可以用任意的存储单元来存储。线性表中逻辑相邻的两元素的存储空间可以是不连续的。为表示逻辑上的顺序关系,对表的每个数据元素除存储本身的信息之外,还需存储一个指示其直接衙继的信息。这两部分信息组成数据元素的存储映象,称为结点。
&-数据域+指针域
例:下图是若干抽屉,每个抽屉中放一个数据元素和一个指向后继元素的指针,一号抽屉中放线性表的第一个元素,它的下一个即第二个元素的位置标为5,即放在第5个抽屉中,而第三个放在2号抽屉中。第三个元素即为最后一个,它的下一个元素的指针标为空,用0表示。
用线性链表表示线性表时,数据元素之间的逻辑关系是由结点中的指针指示的
二、线性链表的存储实现
struct LNODE{
struct LNODE *
typedef struct LNODE LN
typedef struct LNODE * LinkL
头指针与头结点的区别:
头指针只相当于结点的指针域,头结点即整个线性链表的第一个结点,它的数据域可以放数据元素,也可以放线性表的长度等附加信息,也可以不存储任何信息。
三、线性表的操作实现(类C语言)
1初始化操作
Status Init_L(LinkList L){
if (L=(LinkList *)malloc(sizeof(LNode)))
{L-&next=NULL;return 1;}
else return 0;
Status ListInsert_L(LinkList &L,int i,ElemType e){
while(p&&j&i-1){p=p-&++j;}
if(!p||j&i-1) return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s-&data=e;s-&next=p-&
p-&next=s;
return OK;
}//ListInsert_L
Status ListDelete_L(LinkList &L,int i,ElemType &e){
while(p&&j&i-1){p=p-&++j;}
if(!p-&next||j&i-1) return ERROR;
q=p-&p-&next=q-&
e=q-&free(q);
return OK;
}//ListDelete_L
4取某序号元素的操作
Status GetElem_L(LinkList &L,int i,ElemType &e){
p=L-&next,j=1;
while(p&&j&i){p=p-&++j;}
if(!p||j&i) return ERROR;
return OK;
}//GetElem_L
5归并两个单链表的算法
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){
//已知单链线性表La和Lb的元素按值非递减排列
//归并后得到新的单链线性表Lc,元素也
按值非递减排列
pa=La-&pb=Lb-&
while(pa&&pb){
if(pa-&data&=pb-&data){
pc-&next=pc=pa=pa-&
}else{pc-&next=pc=pb=pb-&}
pc-&next=pa?pa:
}//MergeList_L
C语言实现的例子。
1、线性链表的概念。
2、线性链表的存储
3、线性链表的操作
视频教程列表
文章教程搜索
输入您的搜索字词
提交搜索表单
C语言程序设计推荐教程
tel:<font color="#FF30058

我要回帖

更多关于 线性表c语言实现 的文章

 

随机推荐