顺序表的初始化怎么用C语言实现?举个例子,不胜感激

如题所述

你所说的顺序表就是指单向链表吧。举个例子:
声明:typedef struct queue{
int data;
struct queue * next;
}queuetype; //定义结构体类型
typedef queuetype * pqueuetype; //定义结构体指针类型
pqueuetype front,rear; //声明链表头指针和尾指针

操作:
void queueinital(){
front=NULL;
rear=NULL; }
这一段函数就是所谓的单向链表的初始化,即将链表头指针和尾指针都赋值为空而已。如果你指的是将链表各个单元中的所有数据初始化,那需要先明白一个问题,链表各单元并不是先申请空间再等待你输入值的,而是,你有一个值,程序申请空间,然后将值写入。看一下下面的入队函数:
void inqueue(int x){
pqueuetype p=(pqueuetype)malloc(sizeof(queuetype));
p->data=x;
p->next=NULL;
if(rear==UNLL){
rear=p;
front=p;
}
else{
rear->next=p;
rear=p;}
}
}
通过这个入队函数,将值写入链表,链表根据你写入值的多少一个个申请空间,改变长度,通过所有指针将所有数据单元相连。实现单向顺序链表结构。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-27
e,纠正一下,严重错误。

如果是链表,则需要一个节点一个节点的进行初始化
pNode = sqList.pHead;
while(pNode!= null)
{
pNode->data = 1; //赋你希望的值
pNode = pNode->next;
}本回答被网友采纳
第2个回答  2013-10-27
初始化为0:
int a[10];
memset(a, 0, sizeof(int));

初始化为有意义的数据:
int a[10] = {1,2,...,10};
或者: int a[] = {1,2,...,10};
或者:
int a[10];
for (int i=0; i<10; i++)
{
a[i] = i;
}
第3个回答  2013-10-27
如果是链表,则需要一个节点一个节点的进行初始化
pNode = sqList.pHead;
while(list->next != null)
{
pNode->data = 1; //赋你希望的值
}
相似回答