网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月04日漏签0天
数据结构吧 关注:104,523贴子:883,602
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 8回复贴,共1页
<<返回数据结构吧
>0< 加载中...

线性表的问题、

  • 只看楼主
  • 收藏

  • 回复
  • ‖№小嚕
  • 散列表
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
void CreateList_L(LinkList L, int n) { // 逆位序输入(随机产生)n个元素的值,建立带表头结点的单链线性表L
LinkList p; int i;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; // 先建立一个带头结点的单链表
for (i=n; i>0; --i) {
p = (LinkList)malloc(sizeof(LNode)); // 生成新结点
p->next = L->next; L->next = p; // 插入到表头 }}
//
CreateList_Lvoid PrintList_L(LinkList L) //依次输出带头结点单链表中的所有元素{
}// PrintList_L( 想问下依次输出的 代码怎么写??


  • lower_scoring
  • 九宫格
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
void PrintList_L(LinkList L) //依次输出带头结点单链表中的所有元素
{
LinkList p;
p=L->next;
while(p!=NULL)
{
printf(p->data);//不知道你这数据类型是什么,记得格式补完整
p=p->next;
}
}// PrintList_L( 想问下依次输出的 代码怎么写??


2025-09-04 23:39:55
广告
不感兴趣
开通SVIP免广告
  • kinomokey
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为是算法 所以LZ才会问代码怎么写啊 你懂写不?其实我也很想知道换成代码应该怎样写 求教导


  • lower_scoring
  • 九宫格
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你把c/c++的基础语法稍微学习一下就知道怎么写了。(如果你要用c/c++实现算法)


  • kinomokey
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不是肌醇语法的问题 要看配套不配套整个代码老师挖出来要我们填的空 我试过你写的那个了 可能是跟整个代码不符合 所以即使编译的时候没有错 但运行还是一运行就有问题


  • lower_scoring
  • 九宫格
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我不知道你是怎么试的代码。不知道你是否改了格式。
即便是 跟整个代码不符,,情况一般是:
某个变量的数据类型不一致,
有的可能会在代码之前用#define 宏定义常量、 或者typedef 类型。这些多注意一下。
还有,在代码中可能使用了某些库函数。需要引入头文件。比如#include <stdio.h> 等等
还有,比较棘手的是,边界问题。如果逻辑不对的话,可能会溢出。


  • kinomokey
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define OK 1
#define ERROR 0 typedef int Status;
//定义链表的存储结构,实际上是链表中每个结点的存储结构
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
void CreateList_L(LinkList L, int n) {
// 逆位序输入(随机产生)n个元素的值,建立带表头结点的单链线性表L
LinkList p;
int i;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; // 先建立一个带头结点的单链表
for (i=n; i>0; --i) {
p = (LinkList)malloc(sizeof(LNode)); // 生成新结点
p->next = L->next; L->next = p; // 插入到表头
}
} // CreateList_L
void PrintList_L(LinkList L) //依次输出带头结点单链表中的所有元素
{
LinkList p;
p=L->next; while(p!=NULL)
{
printf(p->data);
p=p->next;}
}// PrintList_L(
Status ListInsert_L(LinkList L, int i, ElemType e) { // 算法2.9
// 在带头结点的单链线性表L的第i个元素之前插入元素e
LinkList p=L,s;
int j = 0;
while (p && j < i-1) { // 寻找第i-1个结点
p = p->next;
++j;
}
if (!p || j > i-1) return ERROR; // i小于1或者大于表长
s = (LinkList)malloc(sizeof(LNode)); // 生成新结点
s->data = e; s->next = p->next; // 插入L中
p->next = s;
return OK;
} // LinstInsert_L
Status ListDelete_L(LinkList L, int i, ElemType e) { //
// 在带头结点的单链线性表L中,删除第i个元素,并由e返回其值
LinkList p=L,q; int j = 0;
while (p->next && j < i-1) { // 寻找第i个结点,并令p指向其前趋
p = p->next;
++j;
}
if (!(p->next) || j > i-1) return ERROR; // 删除位置不合理
q = p->next;
p->next = q->next; // 删除并释放结点
e = q->data;
free(q);
return OK;
} // ListDelete_L
int main( )
{
LinkList L=0;
ElemType y;
int n,i;
printf("输入单链表进需存进的元素数量!\n");
scanf("%d",&n);
while(n<1 || n>10)
{
printf("请输入1--10之间的整数!\n");
scanf("%d",&n);
}
/* 以上循环语句的功能是控制输入数据个数的合法性,可以修改 */
printf("依次输入存进单链表中的数据元素:\n"); for(i=1;i<=n;i++){scanf("%d",&y);
CreateList_L(L,n); }
printf("单链表中的数据元素为:\n"); PrintList_L(L);
printf("请输入插入元素的位置:\n"); scanf("%d",&n);
printf("请输入插入元素的值:\n"); scanf("%d",&y);
ListInsert_L(L,n,y);
printf("单链表中的数据元素为:\n"); PrintList_L(L);
printf("请输入删除元素的值:\n"); scanf("%d",&y);
ListDelete_L(L,n,y);
printf("单链表中的数据元素为:\n"); PrintList_L(L);
system("pause");
return 0;
}
你帮我看看 可以不?我已经按你说的插入了 但。。。输出还是不行 是不是输出那里缺少什么循环语句?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回数据结构吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示