对于很多初学c语言的同学·,虽然都能理解数据结构中的思想,但是不一定能用c一行一行撸出一个完整的代码,我最近也正好在重新看数据结构,所以就把c语言实现数据结构源代码放出来帮助初学者。

#include

#include

#define N 5

struct LNode {

int data[N];

int last;

};

typedef struct LNode *List;//给结构体取一个别名

struct LNode seqList;

List makeEmpty(List PtrL) {//对顺序表做初始化或者置为空

PtrL = (List) malloc (sizeof(seqList));

PtrL->last = -1;

return PtrL;

}

void Insert(List PtrL, int x, int i) {

if(i < 0 || i > PtrL->last+1) {

printf("插入位置不合法!");

return;//此处对插入的位置做判断,本实例中数组下标从开始。

}

if(PtrL->last == N-1) {

printf("表已满!");

return;//此处判断线性表是否已满

}

for(int j = PtrL->last; j >= i; j--)//对表中元素做后移操作,给新插入元素腾个位置

PtrL->data[j+1] = PtrL->data[j];

PtrL->last++;

PtrL->data[i] = x;

}

int dele(List PtrL, int i, int e) {

if(i <= 0 || i >= PtrL->last+1) {

printf("不存在%d个元素",i);

return -1;//表示删除元素不存在

}

e = PtrL->data[i-1];

for(int j = i; j <= PtrL->last; j++) {

PtrL->data[j-1] = PtrL->data[j];

}

PtrL->last--;

return e;//e为了记录被删除元素的值

}

int find(List PtrL, int e) {

int i;

for(i = 0; i <= PtrL->last && e != PtrL->data[i]; i++);

if(i>= 0 && i <= PtrL->last)

return i;

else

return -1;//表示查找元素不存在

}

void print(List PtrL) {

for(int i = 0; i <= PtrL->last; i++)

printf("%d ",PtrL->data[i]);

}

int main() {

List list;

int a[100], n, m, k, l;

list = makeEmpty(list);//初始化下

printf("请输入插入的个数及插入的元素:");

scanf("%d", &n);

for(int i = 0; i < n; i++) {

scanf("%d", &a[i]);

Insert(list,a[i],i);//插入5个元素

}

printf("插入元素后:");

print(list);

printf("\n");

printf("请输入要查找的元素值:");

scanf("%d", &m);

printf("当前元素位于第%d位置。\n",find(list,m)+1);

printf("请输入要删除的元素的位置:");

scanf("%d", &k);

l = dele(list,k,l);

printf("删除后的顺序表为:");

print(list);

printf("\n");

printf("删除的元素值为:%d", l);

return 0;

}

数组的数据查找c语言,【查找数组面试题】面试问题:c语言实现数据… - 看准网...相关推荐

  1. c语言面试题东软,【东软集团程序员Java东软集团C语言面试题】面试问题:东软java面… - 看准网...

    当天我很早的就来到面试地点,其实我们还有课<算法分析与设计>,但是我们逃了吧,逃课的不止我一人,还有王凯,还有唐建军,王川,还有我的好友刘冠春.他们逃课也许是为了对面试做一个充分的准备吧, ...

  2. c语言字符串数组分配没错,【字符串数组面试题】面试问题:C语言基础小结… - 看准网...

    26. 位段:指定结构体中成员变量所占的位数(以位的形式紧凑存储) unsigned char/int aaa:1 这里只能是unsigned char/int类型 27. 指针数组:int *p[1 ...

  3. C语言 编程判断花瓶是谁打碎的,【数组编程面试题】面试问题:C语言解决是谁… - 看准网...

    逛贴吧偶遇一道很新颖的C语言编程题,想到自己的C语言荒废了很久,便决定花点时间解决一下练练手. 具体题目如下: 实验题目(4)[见实验教材实验五的题目6]:编写程序exp5_6.c,请判断花瓶是谁打碎 ...

  4. 百度linux c面试题,【百度百度糯米算法百度LinuxC语言数据面试题】面试问题:百度笔试题… - 看准网...

    第一部分选择题: 有几道网络相关的题目,巨简单,比如第一题是TCP.RIP.IP.FTP中哪个协议是传输层的.......有一道linux的chown使用题目.其他的全是数据结构的题目!什么链,表,码 ...

  5. c语言 指针 字符串 回文 strcmp,【查找字符串面试题】面试问题:C语言指针题集… - 看准网...

    1. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(). A. p=q;           B. *p=*q;        C. a=*q;         ...

  6. C语言单链成绩表,【查找链表面试题】面试问题:C语言基于单链… - 看准网

    传说中讲课通俗而不庸俗,说话风流而不下流的小编又来了哦,今天的主要内容是:C语言基于单链表得学生成绩管理系统.首先给大家总结下为什么你们学习C语言会觉得难,尤其是对于单链表这块,主要原因得是因为一下两 ...

  7. 查找学生链表c语言,【查找链表面试题】面试问题:C语言实现学生… - 看准网...

    趁着放假无事,开始用C语言开发一些小的项目,巩固基础知识的同时学习新的知识. 学生成绩管理系统实现的功能有:成绩录入.学生成绩查询.删除.修改.通过文件保存等. 开发这样一个系统需要具备的知识:线性表 ...

  8. c语言fwrite写字符串数组,【字符串数组面试题】面试问题:C语言 文… - 看准网...

    1.文件中存储的学生信息按照班级编号升序排列,每个班级的人数可以不同,要求读取文件中所有学生的成绩,计算每个班级的平均成绩,将班级编号和平均成绩输出. 存储格式: 145811  fuxin      ...

  9. c语言怎么使用数组播放下一首音乐,【数组编程面试题】面试问题:c语言MP3播… - 看准网...

    #include #include #include #include //CString的头文件 #include//使用当前时钟做种子 #include #include #include #pr ...

  10. c语言 万年历问题,【数组函数面试题】面试问题:万年历的C语言… - 看准网

    万年历_源码 主函数所在源码 #include #include #include int GetWeek(int year,int month,int day);//求今天是周几.周四就返回 4 . ...

最新文章

  1. 如何取消或定制当点击GridView 的时候出现的那个黄色背景
  2. C++中char类型的溢出问题
  3. JS高级-JQ初识-元字符-正则表达式
  4. css设置按钮竖直方向居中_如何借助伪元素实现垂直居中?
  5. 05-03 docker 常用命令
  6. 敏捷开发用户故事系列之五:用户故事的分类
  7. sftp配置导致ssh连接闪断
  8. ubuntu下安装 Source insight
  9. 学生成绩管理系统设计java_java学生成绩管理系统设计与实现
  10. 重写和重载的区别是什么
  11. mzy git学习,撤销修改(二)
  12. 成功解决Cannot uninstall 'pywin32'. It is a distutils installed project and thus we cannot accurately de
  13. ShuZu冒泡排序选择排序
  14. 如此沙雕的代码注释,原来程序员都是段子手
  15. 技术分享 | binlog 实用解析工具 my2sql
  16. 关键词SEO优化技巧
  17. vi 的完整指令说明 -- YenYen 整理
  18. Python制作属于自己的有声小说
  19. matlab波形相似系数,如何用matlab计算波形相似系数
  20. 成语消消乐java代码_成语消消看-4399成语消消看-成语消消看答案大全

热门文章

  1. 打开unity卡在loading白屏界面
  2. 谈一下对VUE生命周期的理解
  3. fetch git pull 切换_git中fetch和pull的区别
  4. 让 Chrome 在后台运行
  5. java工程师什么城市就业_热门城市的Java薪资情况
  6. python整型变量化ascii_Python基础之基本数据类型
  7. cnn输入层_基于 CNN 的文本分类算法
  8. 一文读懂MapReduce
  9. Linux系统提高编辑效率的vim工具重要知识
  10. HTMLCSS基础学习笔记8-预格式文本