资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C语言空函数中存入表达式 c语言如何表示

用C语言怎样向一个空顺序线性表中存入一系列数据元素?

向一个空顺序线性表中存入一系列数据元素

站在用户的角度思考问题,与客户深入沟通,找到港闸网站设计与港闸网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟空间、企业邮箱。业务覆盖港闸地区。

#include stdio.h

#include stdlib.h

/*

1.创建结构体-----具体事物的抽象

2.创建链表

3.创建结点

4.插入操作

4.1 表头插入

4.2 表尾插入

4.3 指定位置插入(指定位置的前面)

5.删除操作

5.1 表头删除

5.2 表尾删除

5.3 指定位置删除

6.判断是否为空

7.打印链表

*/

//单链表的结构体

typedef struct SingleList

{

//数据域

int data; //以这个数据为例

//struct MM  myMM;

//指针域

struct SingleList *next;

}LIST,*LPLIST;

/*

别名:习惯大写

起别名---小名

//好处:单词少,好看(含义更精简)

struct SingleList  换一种叫法:  LIST;

strcut SingleList *  换一种叫法: LPLIST

*/

//-------2.创建链表  ---任何结构都需要用一个东西去表示

LPLIST CreateList()

{

//创建过程就是初始化过程---初始化基本数据成员过程

//需要内存空间

LPLIST List = (LPLIST)malloc(sizeof(LIST));

if (List == nullptr)

{

printf("失败了\n");

system("pause");

exit(0);

}

//初始化基本数据成员----有表头的链表

List-next = nullptr;

return List;

}

//-------3.创建结点  

LPLIST CreateNode(int data)

{

//1.需要内存

LPLIST Node = (LPLIST)malloc(sizeof(LIST));

//2.初始化基本数据成员

Node-data = data;  //和创建链表多了数据域

Node-next = nullptr;

return Node;

}

//-------4.1 头插法

//函数写法:形参可以表示要操作的东西

//插入的链表是(List),插入的数据是多少(data)

void InsertListHeadNode(LPLIST List,int data)

{

//插入:创建插入的结点

LPLIST newNode = CreateNode(data);  //创建结点

//插入操作

newNode-next = List-next;

/*

c=1

b=2

a=c;

c=b;

*/

List-next = newNode;

}

//-------4.2 尾插法

void InsertListTailNode(LPLIST List, int data)

{

//找到表尾---定义一个移动的指针

LPLIST tailNode = List;

while (tailNode-next != nullptr)

{

tailNode = tailNode-next;

}

//创建插入的结点

LPLIST newNode = CreateNode(data);

tailNode-next = newNode;

}

//-------4.3 指定位置

void InsertListAppoinNode(LPLIST List, int data, int PosData)

{

//创建两个移动的指针:去找指定位置和指定位置的前面

LPLIST frontNode = List;

//frontNode-next==taiNode:判断相邻

LPLIST tailNode = List-next;

//判断是否为空

while (tailNode-data != PosData)

{

/*

frontNode=frontNode-next;

tailNode=tailNode-next;

*/

frontNode = tailNode;

tailNode = frontNode-next;

if (tailNode == nullptr)

{

printf("未找到指定位置\n");

system("pause");

exit(0);

}

}

//tailNode-data=data;

//找到后创建插入的结点

LPLIST newNode = CreateNode(data);

frontNode-next = newNode;

newNode-next = tailNode;

}

//-------5.判断是否为空

//和创建的时候比较

int  IsEmptyList(LPLIST List)

{

if (List-next == nullptr)

return 1;  //返回1表示为空

return 0;   //表示不为空

}

////-------6.打印数据

void PrintList(LPLIST List)

{

if (IsEmptyList(List))

{

printf("链表为空,无法打印");

system("pause");

exit(0);

}

LPLIST pNext = List-next;

while (pNext != nullptr)

{

printf("%d\t", pNext-data);

pNext = pNext-next;

}

printf("\n");

}

//-------7.删除

//头删除

void DeleteListHeadNode(LPLIST List)

{

if (IsEmptyList(List))

{

printf("链表为空,无法删除\n");

system("pause");

exit(0); 

}

LPLIST DNode = List-next;

List-next = DNode-next;

free(DNode);

DNode = nullptr;

}

//-------8.尾删

void DeleteListTailNode(LPLIST List)

{

if (IsEmptyList(List))

{

printf("链表为空,无法删除\n");

system("pause");

exit(0);

}

//找到表尾---定义一个移动的指针

LPLIST tailNode = List-next;

LPLIST tailFront = List;

while (tailNode-next != nullptr)

{

tailFront = tailNode;

tailNode = tailFront-next;

}

tailFront-next = nullptr;

free(tailNode);

}

//-------9.指定位置删除

void DeleteListAppoinNode(LPLIST List, int PosData)

{

//创建两个移动的指针:去找指定位置和指定位置的前面

LPLIST frontNode = List;

//frontNode-next==taiNode:判断相邻

LPLIST tailNode = List-next;

//判断是否为空

while (tailNode-data != PosData)

{

/*

frontNode=frontNode-next;

tailNode=tailNode-next;

*/

frontNode = tailNode;

tailNode = frontNode-next;

if (tailNode == nullptr)

{

printf("未找到指定位置\n");

system("pause");

exit(0);

}

}

frontNode-next = tailNode-next;

free(tailNode);

}

int main()

{

LPLIST List = CreateList();  //List创建成功

printf("插入:\n");

InsertListHeadNode(List, 1);

InsertListHeadNode(List, 2);

InsertListHeadNode(List, 3);

InsertListTailNode(List, 0);

PrintList(List);

printf("删除:\n");

DeleteListHeadNode(List);

PrintList(List);

DeleteListTailNode(List);

PrintList(List);

printf("指定位置:\n");

//看不懂,可以找群主

InsertListAppoinNode(List, 4, 2);

InsertListAppoinNode(List, 3, 2);

//C/C++ 8群

PrintList(List);

// 491994603

DeleteListAppoinNode(List, 2);

PrintList(List);

system("pause");

return 0;

}

向一个空顺序线性表中存入一系列数据元素,我使用了多种插入方式,而对你来说只需要其中一种方式,通过循环的方式去插入就好了.

C语言中请问函数名中的括号里可以写表达式吗

这是逗号表达式,没有括号表达式。。

((b=(2,3),b+2),15+b)

从左往右一次执行语句,以逗号作为分界,最后返回最后一个语句的值

所以

b=3

最后返回15+b

=18

b=18

b=b+b

=36

b+=b-=((b=(2,3),b+2),15+b)

赋值且运算是右结合

b=3

b-=18

b=-15

b+=b

b=-30

C语言如何在函数的参数中使用表达式

你可以用字符指针作为函数的参数,自己在函数里面设计一个格式去读这个指针指向的一串字符。

比如printf ,scanf 函数就是这样的。函数参数就有字符指针。

例如printf("the data is %d",x);

字符串"the data is %d"的首地址给了字符指针。

c语言中的空函数和空值函数分别指的是什么,

1、空函数:返回值为void类型的函数,可以用return,也可以不用return。 不用return和在函数结束处有个return是等效的。但要注意return后面除了分号以外什么也没有。

2、空值函数:返回值为NULL的函数。 如果是有返回类型的函数, 返回空指针用“return NULL;"。这种函数就空值函数。


名称栏目:C语言空函数中存入表达式 c语言如何表示
本文路径:http://cdkjz.cn/article/ddeoehj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220