首页 > 编程知识 正文

c语言不带头结点的单链表,设计算法将一个带头结点的单链表

时间:2023-05-04 00:42:15 阅读:117366 作者:3067

主题:设计3.2算法,求出单链表的节点数。

来源atgdxwz版《数据结构》

代码分析代码实现代码结果代码模块

代码

代码如下。

# include stdlib.h # include stdio.htypedefstructnode { int data; 结构节点*下一步; }linknode; /*定义节点类型*/typedef linknode *linklist; /*使用*//*尾插法创建第一个节点的单链表*//*尾插法可以定义指针别名,然后在linklist中创建指针,方法是在节点后继续插入新的节点*//*代码head=r=(链接列表) malloc ) sizeof (链接节点); 请输入一系列以printf('n )结尾的整数序列。 n '; 扫描(' % d ',x ); while(x ) s=(链接列表) malloc ) sizeof (链接节点); s-data=x; r-next=s; r=s; 扫描(' % d ',x ); } r-next=NULL; 返回头; (/)第一个节点的单链接列表(/voidprint ) linklisthead ) { linklist p; p=head-next; printf (单链表为以下:(n ) ); while(p ) ) printf )、p-data ); p=p-next; }printf((n ); (/)单链路列表中的节点数(/int count (链路列表) ) { int c=0; 链接列表p=head; while(p ) {c; p=p-next; }返回c; (/)单链表第一个节点的节点数(/intcountofhead(linklisthead ) ) { int c=0; 链路列表p=头下一步; while(p ) {c; p=p-next; }返回c; (} int main ) (/*测试函数(/)链接列表; head=creatlinklist (; 打印(头; printf((n单链表中的节点数为:%d )、count )、head ); printf((n单链表第一个节点的节点数为:%d(n )、countofhead (头) head ) ); }代码结果的实现

代码模块的代码模块部分如下。第一部分写入节点类型并定义指针别名

类型结构节点{ int data; 结构节点*下一步; }linknode; 类型链接节点*链接列表; *将* linklist放入linknode后

第二部分是一个用尾插法创建快捷方式阅读器节点的单链表

linklistcreatlinklist ((link listhead,r,s; int x; head=r=(链接列表) malloc ) sizeof (链接节点); 请输入一系列以printf('n )结尾的整数序列。 n '; 扫描(' % d ',x ); while(x ) s=(链接列表) malloc ) sizeof (链接节点); s-data=x; r-next=s; r=s; 扫描(' % d ',x ); } r-next=NULL; 返回头; }工艺图如下。第三部分是输出读取器节点的单链接列表

void print (链接列表) { linklist p; p=head-next; printf (单链表为以下:(n ) ); while(p ) ) printf )、p-data ); p=p-next; }printf((n ); } 第四部分是两个模块,第一个模块计算单链表中的节点数,第二个模块计算第一个节点中的单链表数

/*用于计算单链表节点数的*/int count (链路列表) { int c=0; 链接列表p=head; while(p ) {c; p=p-next; }返回c; (/)单链表第一个节点的节点数(/intcountofhead(linklisthead ) ) { int c=0; 链路列表p=头下一步; while(p ) {c; p=p-next; }返回c; 需要注意的是,单链表的节点数为10,第一个节点的单链表数为9。 这是因为计算单链表的节点数是从第一个节点开始计算的,计算第一个节点的单链表是从第一个节点开始计算的

第五部分是测试这个函数

int main () {linklist head; head=creatlinklist (; 打印(头; printf((n单链表中的节点数为:%d )、count )、head ); printf((n单链表第一个节点的节点数为:%d(n )、countofhead (头) head ) ); 返回0; }此问题与两个问题有关:如何创建单链表和计算单链表的节点

如果对读者有用,作者不胜感激

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。