c语言写数据结构函数 c语言数据结构怎么写

C语言板 数据结构 进栈 函数到底怎么写

看一个栈的简单实现,所有代码都写在一个头文件中,实际的话,最好把声明和实现分开。

创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业服务器托管报价,主机托管价格性价比高,为金融证券行业联通机房服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

#ifndef STACK_H

#define STACK_H

class Stack

{

public:

Stack();

Stack(const Stack copy);

Stack operator= (const Stack copy);

~Stack();

int getHeight() const;

bool isEmpty();

bool push(const int e);

bool pop(int e);

bool top(int e) const;

private:

int count;

int element[MAX_SIZE];

};

Stack::Stack()

{

count = 0;

}

Stack::Stack(const Stack copy)

{

this-count = copy.count;

for(int i = 0; i copy.count; i++)

{

element[i] = copy.element[i];

}

}

Stack Stack::operator =(const Stack copy)

{

if(copy != this)

{

this-count = copy.count;

for (int i = 0; i copy.count; i++)

{

element[i] = copy.element[i];

}

}

return *this;

}

Stack::~Stack()

{

count = 0;

}

int Stack::getHeight() const

{

return count;

}

bool Stack::isEmpty()

{

return count == 0;

}

bool Stack::push(const int e)

{

if (getHeight() == MAX_SIZE)

{

return false;

}

element[count++] = e;

return true;

}

bool Stack::pop(int e)

{

if (isEmpty() )

{

return false;

}

e = element[count--];

return true;

}

bool Stack::top(int e) const

{

e = element[count - 1];

return true;

}

#endif

数据结构c语言那些函数的声明怎么写

int add(int x, int y); //这就是函数声明

int main(void)

{

........

}

int add(int x, int y) //函数定义

{

........

}

C语言实现常用数据结构(一)

实现了链表,栈、哈希表等

哈希表由数组加链表实现。通过计算key的哈希值,将哈希值转成int类型并与数组长度进行与运算得到数组下标,数组每个元素都是一个链表,默认为NULL。

通过InitHashTable函数得到初始化的哈希表。已实现功能有:添加键值、删除键值、根据键获取值,清理所有键值对、回收哈希表,可以根据例子遍历键值。

Key可以扩展为任何类型,但需要实现相应类型HashCode的算法,此处只支持字符串类型。

C语言实现常用数据结构二

项目地址

md5.h

md5.c

m_hashtable.h

m_hashtable.c

测试使用

c语言版数据结构图的一些基本操作函数如下,有三个地方不了解,请各位帮帮忙?

(1)问题三:

i=LocateVex(*G,va);

j=LocateVex(*G,vb);

*G不是指针,是指针G所指对象,就是ALGraph类型。程序中多处使用变量G,但是不同的地方,含义不同。在void CreateGraph(ALGraph *G)里面,G是一个指针,因此,引用其所指对象,要用*G。其他情况下,ALGraph G,G不是指针。

(2)第一:这个void DFSTraverse(ALGraph G,void(*print)(char*)) 为什么不能直接调用print函数,像调用DFS函数一样?可以的,使用函数指针是为以后任意扩展输出程序,以适应不同需要,并且可以作为参数传递。

(3)第二:FirstAdjVex(G,G.vertices[v].data)为什么要用顶点,用了之后又取位置,而不直接用位置,会有什么漏洞吗?不会

int FirstAdjVex(ALGraph G,VertexType v)

{

ArcNode *p;

int v1;

v1=LocateVex(G,v);

p=G.vertices[v1].firstarc;

if(p)

return p-adjvex;

else

return -1;

}

利用已经定义的定位函数LocateVex直接定位顶点v,然后直接读取其firstarc,很自然的过程。

C语言数据结构链队的主函数怎么调用?主函数怎么写?

主函数里调用就像写函数定义一样,比如调用创建表的,就这样:

#include stdio.h

struct Linklist { 

...

};

typedef Linklist* LinkList;

int CreateList(LinkList LstMe) {

...

}  

int main() {

LinkList LstDemo = (LinkList) malloc (sizeof(Linklist));

CreateList(LstDemo); // 调用建表

free (LstDemo);

return 0;

}


网站栏目:c语言写数据结构函数 c语言数据结构怎么写
本文链接:http://cdiso.cn/article/hjssec.html

其他资讯