永发信息网

刚学数据结构,希望有一个简单的线性表代码参考,能输入数就行了

答案:1  悬赏:0  手机版
解决时间 2021-03-27 04:52
刚学数据结构,希望有一个简单的线性表代码参考,能输入数就行了
最佳答案
线性表有顺序存储和链式存储,数据结构的代码都比较多,不是几行就可以了,下面是链表(线性表的链式存储结构)的基本操作,你看看
#include "stdio.h"
#include "stdlib.h"
#include"string.h"
#define OK  1
#define ERROR 0
typedef char ElemType[10];//数据元素类型
typedef struct LNode{     //单链表结构
  ElemType data;
  struct LNode *next;
}LNode,*LinkList;
void CreateList_L(LinkList &L,int n)
{//顺序创建有n个结点的单链表
 LinkList p,q; int i;
 L=(LinkList)malloc(sizeof(LNode));//生成头节点
 if(!L) return ;
 L->next=NULL;q=L;
 for(i=1;i<=n;++i)
  {
  p=(LinkList)malloc(sizeof(LNode));//生成新节点
  printf("Input NO.%d  :",i);
  scanf("%s",p->data);
  p->next=NULL;q->next=p;
  q=p;
  }
}
void Display_L(LinkList L)
{//L为头指针,显示单链表的每个元素
 LinkList p=L->next;
 while(p)
  {
  printf("%s ",p->data); p=p->next;
  }
 printf("
");
}
int GetElem_L(LinkList L,int i,ElemType e)
{//L为单链表的头指针,取为位序为i的元素值,并赋值给变量e
 LinkList p=L->next; int j=1;
 while(p&&j  {
  p=p->next; j++;
  }
 if(!p||j>i) return ERROR;
 strcpy(e,p->data);return OK;
}
int ListInsert_L(LinkList &L,int i,ElemType e)  
{//L为单链表的头指针,表示在位序为i的元素前插入数据e
 LinkList p=L,s;int j=0;
 while(p&&j  {
  p=p->next; ++j;
  }
 if(!p||j>i-1) return ERROR;//i值不合理
 s=(LinkList)malloc(sizeof(LNode));
 strcpy(s->data,e);
 s->next=p->next;
 p->next=s;
 return OK;
}
int ListDelete_L(LinkList &L,int i,ElemType e)
{//L为单链表的头指针,删除位序为i的数据元素,并将其值赋值给e
 LinkList p=L,q; int j=0;
 while(p&&j  {
  p=p->next; ++j;
  }
 if(!p||j>i-1) return ERROR;//i值不合理
 q=p->next;p->next =q->next ;//删除结点 
 strcpy(e,q->data );free(q);//释放结点
 return OK;
}
void main()
{
 LinkList L;
 ElemType e;
 int n;
 printf("请输入单链表的长度n=");
 scanf("%d",&n);
 CreateList_L(L,n);
 printf("
原始单链表是:");Display_L(L);
 if(GetElem_L(L,3,e))printf("
3号结点的内容是:%s
",e);
 if(ListDelete_L(L,6,e))
 printf("
删除6号结点后的单链表是:");Display_L(L);
 if(ListInsert_L(L,4,"李"))
 printf("
在4号结点前插入后的单链表是:
");Display_L(L);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
当今社会做什么最好创业
首次就业你是否愿意从最底层做起?为什么?
如何评价《利用python进行数据分析》这本书
我邻居种的春玉米打领种的,昨天晚上刮大风加
发现男人跟网友有见面跟暧昧关系,既然为了网
为什么王者荣耀我储存路径错误
小麦的出粉率是75%要磨90千克面粉要多少千克
类背包问题
索尼psp怎么看型号
宁波大学到维科公司怎么走
“鸥鹭机”典故是什么
小米文件夹管理怎么设置不显示微信接收的东西
什么是Legitimate_peripheral_participation?
牌照号:4444代表什麼?
擦脸先擦补水的还是先擦防紫外线的
推荐资讯
LG49UH6500怎么样?LG49UH6500好吗
She to beat the world record but failed at
最近Hit Fm 在热播的一首歌,歌词里面有who w
linux su和sudo命令的区别
重装坦克怎么用啊,看见很多大佬都带,但是不
德国菲诗曼地暖的锅炉会有刺耳的声音是什么原
佘自强怎么死的这么早
光纤被限速了,怎么办?
从周村火车站到萌水怎么坐公交车,最快需要多
当n表示所有的自然数0,1,2,3,4,5,时,2
一般请出家师父超度,会不会给讲众生具体的往
160222是指数基金吗∞
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?